Суть идеи такова: 1. Имеется таблица 23 столбца (лист "ДАНО") 2. Ориентир столбец №3 (в нем содержатся или ДО или РНС или ДМТР) 3. Если в столбце №3 ДО то строчку таблицы копируем на лист "ДО", если РНС то копируем на лист "РНС", соответственно ДМТР копируем строку на лист "ДМТР" 4. на лист "сводная" копируем строчки с ДО но только выборочные столбцы (номера столбцов я указал в примере).
Если возможно, то с комментариями в коде, т.к. сам пытаюсь изучать VBA, чтоб потом можно было разобраться
Доброго времени суток, уважаемые форумчане! :)
Нужна помощь в написании макроса. :(
Суть идеи такова: 1. Имеется таблица 23 столбца (лист "ДАНО") 2. Ориентир столбец №3 (в нем содержатся или ДО или РНС или ДМТР) 3. Если в столбце №3 ДО то строчку таблицы копируем на лист "ДО", если РНС то копируем на лист "РНС", соответственно ДМТР копируем строку на лист "ДМТР" 4. на лист "сводная" копируем строчки с ДО но только выборочные столбцы (номера столбцов я указал в примере).
Если возможно, то с комментариями в коде, т.к. сам пытаюсь изучать VBA, чтоб потом можно было разобраться Aleksej
Public Sub www() Dim a, i&, sh As Worksheet a = Array("ДО", "РНС", "ДМТР") For i = 0 To 2 Me.[b19].CurrentRegion.AutoFilter 3, a(i) Me.[b19].CurrentRegion.SpecialCells(12).Copy Sheets(a(i)).[b7] If a(i) = "ДО" Then Intersect(Me.[b19].CurrentRegion.SpecialCells(12), Me.Range(("b:d,H:h,m:m,y:y"))).Copy Sheets("Сводная").[b7] Intersect(Me.[b19].CurrentRegion.SpecialCells(12), Me.Range("H:h,r:r")).Copy Sheets("Сводная").[h7] End If Next Me.AutoFilterMode = 0 End Sub
[/vba]
[vba]
Код
Public Sub www() Dim a, i&, sh As Worksheet a = Array("ДО", "РНС", "ДМТР") For i = 0 To 2 Me.[b19].CurrentRegion.AutoFilter 3, a(i) Me.[b19].CurrentRegion.SpecialCells(12).Copy Sheets(a(i)).[b7] If a(i) = "ДО" Then Intersect(Me.[b19].CurrentRegion.SpecialCells(12), Me.Range(("b:d,H:h,m:m,y:y"))).Copy Sheets("Сводная").[b7] Intersect(Me.[b19].CurrentRegion.SpecialCells(12), Me.Range("H:h,r:r")).Copy Sheets("Сводная").[h7] End If Next Me.AutoFilterMode = 0 End Sub
KuklP, Добрый день! Да точно нет пароля, извиняюсь Просто был открыт другой документ экселя, а в редакторе VBA они же вместе показываются.
С кодом мало мальски разобрался, но не полностью. 1. не могу понять что такое "sh" 2. Почему когда удаляешь номера столбцов в листе ДАНО, макрос перестает сортировать, не могу понять как он связан с нумерацией столбцов? %) 3. Почему макрос копирует нумерацию, если в коде указано начинать сортировку со строчки ниже, тоже непонятно?
Спасибо ещё раз за помощь!
KuklP, Добрый день! Да точно нет пароля, извиняюсь Просто был открыт другой документ экселя, а в редакторе VBA они же вместе показываются.
С кодом мало мальски разобрался, но не полностью. 1. не могу понять что такое "sh" 2. Почему когда удаляешь номера столбцов в листе ДАНО, макрос перестает сортировать, не могу понять как он связан с нумерацией столбцов? %) 3. Почему макрос копирует нумерацию, если в коде указано начинать сортировку со строчки ниже, тоже непонятно?
ничего, это лишнее, писалось "на вырост" и не пригодилось. Можно убрать. 2),3) - непонятно о чем. Ни в макросе ни в топике ни о какой сортировке речь не идет.
ничего, это лишнее, писалось "на вырост" и не пригодилось. Можно убрать. 2),3) - непонятно о чем. Ни в макросе ни в топике ни о какой сортировке речь не идет.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
KuklP, спс что ответил под сортировкой я имел ввиду: - если ДО то на один лист копирует - РНС на другой лист и т.д. (типа сортирует )
Я не могу понять, почему если с листа ДАНО, очистить или удалить строку с нумерацией столбцов (1, 2, 3, 4.1, 4.2, 5, 6 и т.д.), макрос перестает работать, а если не удалять то он эту строку за собой на все листы тащит?
KuklP, спс что ответил под сортировкой я имел ввиду: - если ДО то на один лист копирует - РНС на другой лист и т.д. (типа сортирует )
Я не могу понять, почему если с листа ДАНО, очистить или удалить строку с нумерацией столбцов (1, 2, 3, 4.1, 4.2, 5, 6 и т.д.), макрос перестает работать, а если не удалять то он эту строку за собой на все листы тащит?Aleksej
если с листа ДАНО, очистить или удалить строку с нумерацией столбцов (1, 2, 3, 4.1, 4.2, 5, 6 и т.д.), макрос перестает работать
так если удалить всю книгу, то и макроса не будет. Странный вопрос. Вам наверное надо начать с чего-то попроще. Что такое таблица, что такое заголовки.
если с листа ДАНО, очистить или удалить строку с нумерацией столбцов (1, 2, 3, 4.1, 4.2, 5, 6 и т.д.), макрос перестает работать
так если удалить всю книгу, то и макроса не будет. Странный вопрос. Вам наверное надо начать с чего-то попроще. Что такое таблица, что такое заголовки.
мы с Вами старые приятели? Что-то не припомню.. Я вот к Вам на Вы.
Цитата
Привет, дружище.
Сами же написали Извиняюсь если что не так.
Цитата
а где в топике написано, что этого делать не надо?
Я же не говорил что сделали не так, просто разобраться хочу :). Решил проблему частично, после копирования добавил в код чтоб удалять эту строку.
Цитата
Вам наверное надо начать с чего-то попроще.
Хотелось бы. Но необходимость решения конкретной задачи, как это чаще всего и бывает , толкает вперед. :). Но из вашего кода я много почерпнул, посидел пару часов разобрался, что то под себя переработал. Просто остались пробелы и непонятки вот и хотел уточнить.
KuklP,
Цитата
мы с Вами старые приятели? Что-то не припомню.. Я вот к Вам на Вы.
Цитата
Привет, дружище.
Сами же написали Извиняюсь если что не так.
Цитата
а где в топике написано, что этого делать не надо?
Я же не говорил что сделали не так, просто разобраться хочу :). Решил проблему частично, после копирования добавил в код чтоб удалять эту строку.
Цитата
Вам наверное надо начать с чего-то попроще.
Хотелось бы. Но необходимость решения конкретной задачи, как это чаще всего и бывает , толкает вперед. :). Но из вашего кода я много почерпнул, посидел пару часов разобрался, что то под себя переработал. Просто остались пробелы и непонятки вот и хотел уточнить. Aleksej
Сообщение отредактировал Aleksej - Среда, 23.03.2016, 12:40
Это я обращался к Игорю Hugo. Ладно, проехали. По поводу заголовков почитайте справку по resize и offset, там и примеры были. Вам в принципе достаточно offset, но для resize пример поподробней.
Это я обращался к Игорю Hugo. Ладно, проехали. По поводу заголовков почитайте справку по resize и offset, там и примеры были. Вам в принципе достаточно offset, но для resize пример поподробней.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728