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

Страницы: 1
Замена "." на "/" для корректного анализа даты, Сравнение с маской вводу, замена формата даты, выгрузка из 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
Что такое всё?
Перехват любой ошибки
 
Добрый день!
Подскажите, пожалуйста, как прехватывать любую ошибку в sub, с простейшим выводом msgbox
Имеется большой sub, в нем на любом этапе могут возникнуть ошибки.
Как сделать так, чтобы любая ошибка становилась msgbox и далее происходил exit sub

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

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

Имеется следующий код:
Код
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
Код
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 - макрос
 
Добрый день, хочу записать макрос преобразования книги из xls в xlsx.
Для того, чтобы изменения во время преобразования вступили в силу и можно было пользоваться всеми возможностями excel предалагает закрыть и заново открыть файл в автоматическом порядке

Вот что записал макрорекодер:
Код
Sub Преобразование()
    ActiveWorkbook.SaveAs Filename:= "С:\test.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ' 1-й этап - сохранение файла в формате xlsx
    Workbooks.Open Filename:= "С:\test.xlsx" ' 2-й этап открытие преобразованного файла
End Sub
Но проблема в том, что файлы могут открывать в разных директориях и иметь разные имена.
Макрос запускается из надстройки, т.е. вначале открывается файл с ним производятся манипуляции в т.ч. преобразование формата.

Пытался использовать ACTIVEBOOK.PATH & ACTIVEBOOK.NAME но файл сохраняется с расширением xls, т.к. видимо name включает и расширение
Также не знаю как открыть только преобразованный и закрытый файл, во второй части макроса.
Поэтому прошу помощи =)
Изменено: g.tomilin - 05.02.2018 17:27:19
Что такое всё?
Сцепление текстовых значений с помощью ЕСЛИ
 
Добрый день, форумчане!

Имеется карточка 51 счета в формате Excel.

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

В результате размышлений возникла идея "сцепить" текстовые значения разных строк.
В приложенном файле попытка начала функции отражена в фиолетовой ячейке.

По простому я бы мог "сцепить" значения 5 строк и протянуть формулу,а потому удалить строки с пустыми значения например отфильтровав в стоблце "дата".
Но проблема в том что по некоторым операциям инфо отражена в 5 строках, по другим в 4-х, по 3-м в 3-х. Т.о. формула по сцепке определенного количества строк работала бы некорректно.

Через функцию ЕСЛИ планировалось добавлять значения строк только в том случае ЕСЛИ значение в находящейся рядом ячейке "пустое".
Но возникла проблема как складывать текстовые значения получаемые из формул.

СцепитьЕсли + СцепитьЕсли не работает

Что такое всё?
Страницы: 1
Наверх