Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Замена "." на "/" для корректного анализа даты, Сравнение с маской вводу, замена формата даты, выгрузка из 1С
 
Пытливый, спасибо но исполнение будет без ручной работы  :) . Это часть процесса автоматизации.
Что такое всё?
Замена "." на "/" для корректного анализа даты, Сравнение с маской вводу, замена формата даты, выгрузка из 1С
 
Nordheim,
Что такое всё?
Замена "." на "/" для корректного анализа даты, Сравнение с маской вводу, замена формата даты, выгрузка из 1С
 
Добрый день!

Имеется столбец (выгрузка карточки счета из 1С Бух) в котором отображается дата операции в формате 01.01.2001
Однако при выгрузке Excel видит её как текстовое поле

Слепил следующий макрос (часть взял из рекордера, часть из других идей):
Код
Sub ChangeOnDate()

Dim mask As String
mask = "##.##.####"
        For Each Cell In Columns("A:A")
        
                    If ActiveCell.Value Like mask Then
                    
                    Cell.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                    ReplaceFormat:=False
                    
                    Cell.NumberFormat = "m/d/yyyy"
                    
                    
                    End If
        Next Cell

End Sub
Однако при замене часть ячеек отображается как 01/01/2001 и остается текстом.
При этом часть ячеек преобразуется нормально и excel воспринимает их как дату формата dd.mm.yyyy

Прошу вашей помощи =)

PS заметил следующее -

Если дата начинается на "0", например 01.01.2001 или 09.12.2012 то преобразование происходит нормально
Если дата начинается на другую цифру (от 1 до 3 соотвественно ), то формат остается прежним например 13/01/2012 или 31/01/2001
Что такое всё?
Перехват любой ошибки
 
Sanja,смотрел эту статью, даже пробовал, но пока учюсь что-то не сошлось.
У вас гораздо понятнее и проще объяснено =)
Что такое всё?
Перехват любой ошибки
 
Sanja, все гениальное просто =) Спасибо!
Что такое всё?
Перехват любой ошибки
 
Добрый день!
Подскажите, пожалуйста, как прехватывать любую ошибку в sub, с простейшим выводом msgbox
Имеется большой sub, в нем на любом этапе могут возникнуть ошибки.
Как сделать так, чтобы любая ошибка становилась msgbox и далее происходил exit sub

Спасибо!
Что такое всё?
ThisWorkBook при использовании надстройки
 
Hugo, да я понял, просто не считал xlam за книгу, тем более, что он не открыт был  :oops:  
Что такое всё?
ThisWorkBook при использовании надстройки
 
Sanja,спасибо сработало =)
Что такое всё?
ThisWorkBook при использовании надстройки
 
Sanja,т.е. можно this заменить на active?
Что такое всё?
ThisWorkBook при использовании надстройки
 
Hugo, вот то-то и думаю.
Путь должен быть той книги в которой запускается код,
Т.е. я открываю книгу1 из неё запускаю надсройку xlam и соотвественно путь нужен книги1
Что такое всё?
ThisWorkBook при использовании надстройки
 
Всем добрый вечер!
имеется следующие части кода
Код
ПутьШаблона = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, ИмяФайлаШаблона)
Set WD = WA.Documents.Add(ПутьШаблона): DoEvents

Если запускать макрос прямо из книги выгрузки то работает отлично
Если запускать из надсройки то вылетает ошибка debuger ссылается на Set WD = WA.Documents.Add(ПутьШаблона): DoEvents
Подозреваю связь с ThisWorkbook
Но не знаю на что заменить чтобы работало корректно
Что такое всё?
Запуск приложений из excel
 
Юрий М
круто =)
Что такое всё?
Активация открытой книги, переход на вкладку по частичному совпадлению имени
 
Казанский, Дмитрий Щербаков,
спасибо всё получилось =))

Казанский,
Я даже не мог предположить что регистр влияет, нужно учить мат. часть =)
Изменено: gtz - 13.02.2018 11:56:39
Что такое всё?
Активация открытой книги, переход на вкладку по частичному совпадлению имени
 
Дмитрий Щербаков,
только название переменной swb (searchedWB)
И искомое значение скопировал прямо из названия книги

Код
Dim swb As Workbook
  For Each swb In Workbooks
    If LCase(swb.Name) Like "*Аналитический*" Then
      Application.Goto swb.Sheets("Иходные данные").Range("A2"), True
      Exit Sub
    End If
  Next
  MsgBox "Необходимо отрыть файл ""Аналитика"""
Переход к неактивной книге не происходит, сразу вылетает msgbox
Изменено: gtz - 13.02.2018 11:19:35
Что такое всё?
Активация открытой книги, переход на вкладку по частичному совпадлению имени
 
Казанский, через "Перейти в другое окно" окна переключаются. файл с названием "Аналитика" открыт
Что такое всё?
Активация открытой книги, переход на вкладку по частичному совпадлению имени
 
Казанский,
Выдает msgbox при неактивированной книге и при активированной.
Что такое всё?
Активация открытой книги, переход на вкладку по частичному совпадлению имени
 
Доброе утро, уважаемые программисты!

Имеется следующий код:
Код
Dim ssh As Worksheet
For Each ssh In Worksheets
If ssh.Name = "Исходные данные" Then
Application.Goto Sheets("Исходные данные").Range("A2"), True
Exit Sub
End If
Next ssh
If ssh Is Nothing Then
MsgBox "Необходимо отрыть файл ""Аналитика"""
End If
Макрос переходит на вкладку "Исходные данные" в случае если такая вкладка имеется в книге, в противном случае выводит мсжбокс о том что необходимо открыть файл "Аналитика...."

Подскажите как можно сделать активацию книге по частичному совпадению имени "Аналитика...", если открыта другая книга.

В один момент другой книги с подобным именем не открыто
Например открыто 2 книги - с названиями:
"Книга1"
"Аналитика за такой-то период ... "

Юзер запускает макрос в "Книге1", и макрос активирует книгу "Аналитика за такой-то период..."и дальше
Код
Application.Goto Sheets("Исходные данные").Range("A2"), True
Только необходимо частичное совпадение имени,т.к. после слова "Аналитика" может любой набор дат, и других параметров.
Т.е. определить книгу в названии которой имеется слово "Аналитика", записать в переменную, ну а дальше я так подозреваю
Код
Application.Goto Workbooks(ПЕРЕМЕННАЯ_с_названием книги).Sheets("Исходные данные").Range("A2"), True
Изменено: gtz - 13.02.2018 08:51:43
Что такое всё?
MsgBox, если в цикле значение не найдено, for next
 
Юрий М,в целом никакого. Можно создать новую тему?
Что такое всё?
MsgBox, если в цикле значение не найдено, for next
 
Hugo, вы имеете в виду Msgbox?
Это сделано чисто для юзера если он пытается запустить макрос в другой книге - то получает предупреждение.



Ещё вопрос - как можно открыть необходимую книгу по частичному имени.
Т.е. к примеру юзер хочет перейти
Код
Application.Goto Sheets("Исходные данные").Range("A2"), True
А данный лист находится в книге "Аналитика за такой-то период...бла бла бла"

Возможна ли активация этой книге по частичному совпадению имени скажем "Аналитика...", если открыта другая книга.
В один момент другой книги с подобным именем не открыто
т.к.

Т.е.
Код
Dim ssh As Worksheet
For Each ssh In Worksheets
If ssh.Name = "Исходные данные" Then
Application.Goto Sheets("Исходные данные").Range("A2"), True
Exit Sub
End If
Next ssh
If ssh Is Nothing Then
MsgBox "Добрый день листы не найдены"
End If
Добавить workbooks (*"аналитика"*)
Или что-то подобное?
Например произвести среди открытых в данным момент книг поиск книги с частиным совпадением имени "Аналитика", записать эту книгу в переменную, а потом уже открывать её через Application.Goto
Изменено: gtz - 12.02.2018 11:36:23
Что такое всё?
MsgBox, если в цикле значение не найдено, for next
 
Hugo,не понял, что имеете в виду?
Что такое всё?
MsgBox, если в цикле значение не найдено, for next
 
Всем спасибо за помощь
Воспользовался советом Hugo,
Код
Private Sub CommandButton4_Click()
Dim ssh As Worksheet
For Each ssh In Worksheets
If ssh.Name = "Исходные данные" Then
Application.Goto Sheets("Исходные данные").Range("A2"), True
Exit Sub
End If
Next ssh
If ssh Is Nothing Then
MsgBox "Добрый день листы не найдены"
End If
Изменено: gtz - 09.02.2018 16:20:30
Что такое всё?
MsgBox, если в цикле значение не найдено, for next
 
Добрый день, подскажите пожалуйста
Имеется цикл поиска листа с определенным названием
Как сделать так чтобы в случае если искомый лист не найден выводился MsgBox
Код
Private Sub CommandButton4_Click()
Dim ssh As Worksheet
For Each ssh In Worksheets
If ssh.Name = "Исходные данные" Then
Application.Goto Sheets("Исходные данные").Range("A2"), True

End If
Next ssh
'If ssh Is Nothing Then
'MsgBox "Добрый день листы не найдены"
'End If

End Sub
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
RAN, не верно скопировал

Private Sub CommandButton1_Click()    
   Dim oldFName$
   Dim newFName As String - содержит путь в новому файл чтобы потом его открыть
   Dim PathCurrentBook As String - забыл что FullName содержит ещё и путь поэтому добавлял переменную
   oldFName = ActiveWorkbook.FullName
   newFName = oldFName & "x" - записываем новое имя путь
   PathCurrentBook = ActiveWorkbook.Path - аналогично вышеуказанной ошибке
   ActiveWorkbook.SaveAs oldFName & "x", 51
   Kill oldFName
   ActiveWorkbook.Close - это для закрытия книги, как я писал для того чтобы снять режим совместимости
   Workbooks.Open Filename:=newFName - ну и открыть собственно новый файл
End Sub

Т.е. если просто пересохранить файл в xlsx то остается режим совместимости, поэтому нужно закрыьт и заново открыть преобразованную книгу.
Изменено: g.tomilin - 08.02.2018 09:38:01
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
Ігор Гончаренко,Спасибо за объяснение все понятно.
Это делается для краткости?
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
RAN,
подскажите пожалуйста что значит значек $ в
Код
Dim oldFName$
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
Дмитрий Щербаков,
Спасибо за наводку =))) Я только учюсь поэтому ещё мозг не так работает.

Вот код, может конечно не идеальный но работает. добавил к коду
Код
Private Sub CommandButton1_Click()
    Dim oldFName$
    Dim newFName As String
    Dim PathCurrentBook As String
    oldFName = ActiveWorkbook.FullName
    newFName = oldFName & "x"
    PathCurrentBook = ActiveWorkbook.Path
    ActiveWorkbook.SaveAs oldFName & "x", 51
    Kill oldFName
    ActiveWorkbook.Close
    Workbooks.Open Filename:=newFName
End Sub

По поводу множества открытых xls тоже спасибо, буду иметь в виду. Но в практике обычно открывается один файл с ним происходят преобразования, он анализируется, после уже открывается другой файл и т.д.
Возможно в будущем возникнет жделание группового одномоментного преобразования.

Всем спасибо (особоенно RAN, Ігор Гончаренко, Дмитрий Щербаков, )! Решение найдено.

ps Дмитрий Щербаков протестирую ваш код.

Дмитрий Щербаков, с if красивее и удобнее, спасибо =)
Изменено: g.tomilin - 07.02.2018 11:09:52
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
Ігор Гончаренко, проблема в том что путь как и имя файла неконстанта.
Этот макрос встроен в надстройку - я открываю любой файл и применяю в нему определенный набор изменений в т.ч. преобразование в xlsx.
Соответственно нужно что-то вроде open recent file
Т.е. происходит сохранение/преобразование затем требуется заново открыть файл - по процедуре close затем open.
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
Есть ещё какие-нибудь предложения по вопросу? =)
Как закрыть а затем открыть книгу?
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
_Igor_61, да я в справке просто 51 набрал и он выдал -
Скрытый текст
Что такое всё?
Преобразование файла из xls в xlsx - макрос
 
RAN, нашел кодировки форматов, увидел возможные варианты причин ошибки, но к сожалению через ф1 не понять как закрыть и открыть книгу =)
Изменено: g.tomilin - 06.02.2018 10:19:19
Что такое всё?
Страницы: 1 2 След.
Наверх