Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование макросом данных в отдельный лист по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование макросом данных в отдельный лист по условию (Формулы/Formulas)
Копирование макросом данных в отдельный лист по условию
kravtsoffegor97 Дата: Вторник, 12.01.2021, 16:41 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, уважаемые форумчане!
Задача следующая, есть условные данные, в столбце D стоит дата формата; ДД.ММ.ГГГГ (число всегда 01, т е 01.02.2020, 01.05.2019 и тд),
Нужно разбить все данные по кварталам, для этого были созданы 4 листа (Квартал1, Квартал2 и т д)
Можно ли написать макрос который будет определять к какому кварталу относится та или иная дата, выделять ВСЮ строку, и вставлять её в соответствующий лист, и так до тех пор пока данные не закончатся.
Пытался что то написать сам, но не пашет, может кто подскажет.
Заранее благодарю!

[vba]
Код
Sub М2()
Dim R As Long
Range("D:D").Select
If R = "2020.01.01" Or R = "2020.02.01" Or R = "2020.03.01" Or R = "2019.01.01" Or R = "2019.02.01" Or R = "2019.03.01" Then Rows(r).Select
Selection.Cut
Sheets("Квартал1").Select
ActiveSheet.Paste
End Sub
[/vba]


Сообщение отредактировал kravtsoffegor97 - Вторник, 12.01.2021, 16:42
 
Ответить
СообщениеДобрый день, уважаемые форумчане!
Задача следующая, есть условные данные, в столбце D стоит дата формата; ДД.ММ.ГГГГ (число всегда 01, т е 01.02.2020, 01.05.2019 и тд),
Нужно разбить все данные по кварталам, для этого были созданы 4 листа (Квартал1, Квартал2 и т д)
Можно ли написать макрос который будет определять к какому кварталу относится та или иная дата, выделять ВСЮ строку, и вставлять её в соответствующий лист, и так до тех пор пока данные не закончатся.
Пытался что то написать сам, но не пашет, может кто подскажет.
Заранее благодарю!

[vba]
Код
Sub М2()
Dim R As Long
Range("D:D").Select
If R = "2020.01.01" Or R = "2020.02.01" Or R = "2020.03.01" Or R = "2019.01.01" Or R = "2019.02.01" Or R = "2019.03.01" Then Rows(r).Select
Selection.Cut
Sheets("Квартал1").Select
ActiveSheet.Paste
End Sub
[/vba]

Автор - kravtsoffegor97
Дата добавления - 12.01.2021 в 16:41
Serge_007 Дата: Вторник, 12.01.2021, 17:30 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте

Цитата kravtsoffegor97, 12.01.2021 в 16:41, в сообщении № 1 ()
[vba]
Код
If R = "2020.01.01" Or R = "2020.02.01" Or R = "2020.03.01" Or R = "2019.01.01" Or R = "2019.02.01" Or R = "2019.03.01" Then
[/vba]
Для определения номера квартала используйте функцию VBA - DatePart


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте

Цитата kravtsoffegor97, 12.01.2021 в 16:41, в сообщении № 1 ()
[vba]
Код
If R = "2020.01.01" Or R = "2020.02.01" Or R = "2020.03.01" Or R = "2019.01.01" Or R = "2019.02.01" Or R = "2019.03.01" Then
[/vba]
Для определения номера квартала используйте функцию VBA - DatePart

Автор - Serge_007
Дата добавления - 12.01.2021 в 17:30
kravtsoffegor97 Дата: Вторник, 12.01.2021, 17:47 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, я пытался, слишком сложно для меня, выбрал более топорный но зато понятный вариант, тут вопрос в основном в том как заставить программу раскидывать данные по листам, что бы они друг на друга не наезжали....
 
Ответить
СообщениеSerge_007, я пытался, слишком сложно для меня, выбрал более топорный но зато понятный вариант, тут вопрос в основном в том как заставить программу раскидывать данные по листам, что бы они друг на друга не наезжали....

Автор - kravtsoffegor97
Дата добавления - 12.01.2021 в 17:47
Serge_007 Дата: Вторник, 12.01.2021, 17:59 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Нужен счетчик LastRow на каждом из листов по столбцу, который заведомо будет заполнен:
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]

Определяете в исходнике построчно по дате номер квартала (DatePart) и в зависимости от него копируете данные на соответствующие листы накопительным итогом (LastRow)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНужен счетчик LastRow на каждом из листов по столбцу, который заведомо будет заполнен:
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]

Определяете в исходнике построчно по дате номер квартала (DatePart) и в зависимости от него копируете данные на соответствующие листы накопительным итогом (LastRow)

Автор - Serge_007
Дата добавления - 12.01.2021 в 17:59
kravtsoffegor97 Дата: Вторник, 12.01.2021, 18:18 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, Попробую, спасибо большое)
 
Ответить
СообщениеSerge_007, Попробую, спасибо большое)

Автор - kravtsoffegor97
Дата добавления - 12.01.2021 в 18:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование макросом данных в отдельный лист по условию (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!