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

Страницы: 1
Метод Replace замена формата времени
 
Replace, оказалось, и не нужен)) Просто даже интересно было почему стандартная запись макроса делает через Replace, а воспроизводить через него не хочет :(

БМВ, Апострофф,Спасибо, ребята! Не догадался, что можно умножить и поделить  :D

Проблема решена, огромное спасибо!!
С новым годом!
Метод Replace замена формата времени
 
Цитата
Михаил Витальевич С. написал:
непонятно, что нужно получить.
Михаил, в столбце В нужно заменить время с 8:??:?? на 8:00, 9:??:?? на 9:00 и т.д. до 22:??:?? на 22:00, где 8, 9, ... , 22 это часы, а ?? = хаотичные значения, т.е минуты и секунды.  грубо говоря, минуты и секунды превратить в нули.
Метод Replace замена формата времени
 
Добрый день, ребят!

Глупый вопрос, но придется его задать, потому что сломал уже всю голову и искал на форумах - ответа не нашел.
С помощью стандартной команды Ctrl+H в столбце В изменяю "22:*:*" на "22:00". Записываю процедуру стандартной записью макросов, получаю данный код:
Код
    Columns("B:B").Select
    Selection.Replace What:="22:*:*", Replacement:="22:00", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

В данном коде меняю 22 на следующее, требующее замены: 21 или 20, или 19 - код не отрабатывает (значения в ячейках не изменяются).
Требуется так заменять время с 8:00:00 до 22:00:00. Вручную долго. Подозреваю, что дело в формате ячеек либо в том, что в vba время по-другому исчисляется. Помогите, пожалуйста.
Разбиение (разделение) данных по отделам на несколько листов
 
Теперь всё как надо!
Разбиение (разделение) данных по отделам на несколько листов
 
Цитата
Вот этот диапазон и копируйте
Помогите немного дожать, ну никак не могу въехать

Код
        If Not FoundNomer Is Nothing Then 'находит нужное нам значение
          Swod.Range(Swod.Cells(FoundNomer.Row, "A"), Swod.Cells(FoundNomer.Row, "K")).Copy 'копирует всю строку с ним
         'Worksheets(Worksheets.Count).Paste '(вариант 1) вставляет, но вставляются не все строки
          iLR = Cells(Rows.Count, 1).End(xlUp).Row + 1
         'Cells(iLR, 1) = Swod.Range(Swod.Cells(FoundNomer.Row, "A"), Swod.Cells(FoundNomer.Row, "K")) '(вариант 2) при таком ничего не вставляется
        End If
Изменено: FrinG - 16.01.2020 22:51:49
Разбиение (разделение) данных по отделам на несколько листов
 
Да, из него.
Изменено: FrinG - 16.01.2020 22:07:23
Разбиение (разделение) данных по отделам на несколько листов
 
Kuzmich, всё супер правильно работает! Очень помогли. Я уже хотел начать перебором через "Like".
Если не трудно, подскажите, пожалуйста, сильно ли изменится макрос, если мне нужно всю строку копировать (предполагается, что там не только значение с датой и номером). Полагаю, что изменения будут здесь,
Код
        If Not FoundNomer Is Nothing Then          
iLR = Cells(Rows.Count, 1).End(xlUp).Row + 1
          Cells(iLR, 1) = FoundNomer.Offset(, -1)  'дата
          Cells(iLR, 1).NumberFormat = "dd.mm.yyyy"
          Cells(iLR, 2) = FoundNomer               'номер
        End If
поскольку Вы сначала ставите дату, затем сам номер.

Если не ответите, то спасибо и на этом, очень признателен!
Изменено: FrinG - 16.01.2020 21:43:41
Разбиение (разделение) данных по отделам на несколько листов
 
Приложил измененный файл, убрал "1" в начале чисел, сбивали потому что. Добавил 8 листов, в каждый из них из "свод"а вставил то, что должно получиться. Суть в том, что к каждому отделу принадлежат свои сотрудники, но они записаны номерами. Приходит свод, в котором они все в кучу. Надо их на соответствующие листы распихать (кто в каком отделе)
Разбиение (разделение) данных по отделам на несколько листов
 
Цитата
Kuzmich написал:
А где ваши попытки?
мои попытки тормознули на "с чего начать". Format не берет диапазон, Find я посчитал не вариантом. Подскажите хотя бы с чего начать. Я думал тут всё просто. Искал на форумах, но ничего подобного не нашел. Поэтому прибегнул к крайней мере: написать сюда
Разбиение (разделение) данных по отделам на несколько листов
 
Доброго времени суток, уважаемые эксперты!

Очень прошу помочь в написании макроса. В приложенном файле в листе "кто" перечислены 8 отделов и относящиеся к ним номера. Номера могут меняться (добавляться, удаляться). В листе "свод" содержатся в кучу данные, в которых фигурируют в хаотичном порядке все номера из листа "кто".
Задача состоит в том, чтоб из свода выдернуть (скопировать) данные и распределить их по отоносящимся к ним отделам на 8 листов с соответствующим названием отдела.
Если не затруднит, просьба прислать текст макроса в комментариях, т.к. это примерный файл и сварганил с телефона. Спасибо!
Возможно ли заменить код VBA (в макросе), не открывая сам макрос
 
Доброго времени суток!

Для визуализации примера имеется код:

Код
Sub Макрос1()
'
' Макрос1 Макрос
'
Workbooks.Open Filename:="D:\10.07.2019\dead10.07.2019.xlsx"
    Range("A5:B6").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
Workbooks.Open Filename:="D:\10.07.2019\rip10.07.2019.xlsx"
    Range("A1:B4").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
Workbooks.Open Filename:="D:\10.07.2019\skull10.07.2019.xlsx"
    Range("A2:B5").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
End Sub

Обыскал весь интернет и форум данного сайта - решение не нашел.

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

Экспериментальным методом выявил, что файлы открываются макросом, только если указан точный путь. Дата в названии папки соответствует дате в названии файла.

Суть задачи в том, что даты изменяются. Приходится каждый раз открывать макрос, заменять даты на требуемые и потом уже выполнять макрос.

Задача: возможна ли замена кода (дат) непосредственно из листа (не открывая макрос)?

Т.е., например, создать выпадающий список с датами, к ним привязать флажки (из элемента управления формы), а уже к ним макросы (в которых будут заменяться даты) (примерно как на скрине). Или есть более простой способ, который я не вижу?

Буду благодарен любым комментариям и рассуждениям.
Страницы: 1
Наверх