В Excel есть 2 листа. Собираю из них данные в один лист. Данные должны вставляться из указанных в макросе листов ("1" и "2") и на указанный лист - "ОБЩ". С листа "TEMP" данные вставлять не надо. [vba]
[/vba] Это и будет первой пустой строкой снизу, а затем уже вставить скопированный заранее диапазон...
Но как применить не знаю.
В Excel есть 2 листа. Собираю из них данные в один лист. Данные должны вставляться из указанных в макросе листов ("1" и "2") и на указанный лист - "ОБЩ". С листа "TEMP" данные вставлять не надо. [vba]
Wasilich, у всех один минус (для меня): 1. сколько раз запустишь макрос, столько раз данные вставятся. Получается дублирование данных. 2. на каком листе стоишь, туда данные и вставляются.
Данные должны вставляться из указанных в макросе листов ("1" и "2") выбранного диапазона и на указанный лист - "ОБЩ".
Wasilich, у всех один минус (для меня): 1. сколько раз запустишь макрос, столько раз данные вставятся. Получается дублирование данных. 2. на каком листе стоишь, туда данные и вставляются.
А как макрос узнает, что данные повторно вставлять не надо?
Здесь остается только два варианта: 1. где-либо рисуем некий флаг, о том, "типа", что данные уже были скопированы/или не были, здесь вам решать. Но тогда, как говориться один раз скопировал и свободен. (или флаг ручками поставил/убрал) но при повторном копировании будут дубли однозначно. 2. Если на первых двух листах нет дублирования, тогда берем первую строчку с первого листа проверяем ее на наличие на целевом листе, если ее там нет, тогда вставляем, если есть, тогда - аревуа, и так со всеми строчками первого листа, по аналогии делаем со вторым, третьим и сколько угодно листов, тогда у вас будет база без дублей, и обновлять ее можно сколько захочешь раз.
Кстати, вспомнил. можно все скопировать на целевой лист, а потом есть штатная функция рядом с консолидацией - "Убрать дубли"
ЗЫЖ В первом посте про исключение дублей ничего не было сказано.
А как макрос узнает, что данные повторно вставлять не надо?
Здесь остается только два варианта: 1. где-либо рисуем некий флаг, о том, "типа", что данные уже были скопированы/или не были, здесь вам решать. Но тогда, как говориться один раз скопировал и свободен. (или флаг ручками поставил/убрал) но при повторном копировании будут дубли однозначно. 2. Если на первых двух листах нет дублирования, тогда берем первую строчку с первого листа проверяем ее на наличие на целевом листе, если ее там нет, тогда вставляем, если есть, тогда - аревуа, и так со всеми строчками первого листа, по аналогии делаем со вторым, третьим и сколько угодно листов, тогда у вас будет база без дублей, и обновлять ее можно сколько захочешь раз.
Кстати, вспомнил. можно все скопировать на целевой лист, а потом есть штатная функция рядом с консолидацией - "Убрать дубли"
ЗЫЖ В первом посте про исключение дублей ничего не было сказано.dim34rus
Извращение - это писать формулы в Word'овских таблицах. ЯД 410014340958327
Данные должны вставляться из указанных в макросе листов ("1" и "2") и на указанный лист - "ОБЩ".
Уважаемый, вы зациклились на одном и том же вопросе. Вы открывали мой пример? Там кнопка, запускающая макрос, только на листе ОБЩ. Из других листов макрос не запускается. А если вы запускаете макрос из модуля по F8, то смотреть надо, какой лист активирован. А на счет дублирования, первый раз чую. Значит надо очищать исходные таблицы, или- читать выше. [p.s.]В код (под спойлером) добавил Worksheets("ОБЩ"), запускайте от куда хотите![/p.s.]
Данные должны вставляться из указанных в макросе листов ("1" и "2") и на указанный лист - "ОБЩ".
Уважаемый, вы зациклились на одном и том же вопросе. Вы открывали мой пример? Там кнопка, запускающая макрос, только на листе ОБЩ. Из других листов макрос не запускается. А если вы запускаете макрос из модуля по F8, то смотреть надо, какой лист активирован. А на счет дублирования, первый раз чую. Значит надо очищать исходные таблицы, или- читать выше. [p.s.]В код (под спойлером) добавил Worksheets("ОБЩ"), запускайте от куда хотите![/p.s.]Wasilich
Сообщение отредактировал Wasilich - Вторник, 20.12.2016, 23:42
Спасибо всем за советы и примеры. Дублирование поборол добавлением в макрос удаления первой строки в листе "ОБЩ". (Если повторно запускаешь макрос, шапка таблицы удаляется. Это наглядно.)
Спасибо всем за советы и примеры. Дублирование поборол добавлением в макрос удаления первой строки в листе "ОБЩ". (Если повторно запускаешь макрос, шапка таблицы удаляется. Это наглядно.)Viper25
Сообщение отредактировал Viper25 - Среда, 21.12.2016, 15:51
Подскажите, как сделать прогресс-бар работы макроса.
Sub ПростейшийПримерИспользованияПрогрессБара() Dim pi As New ProgressIndicator ' создаём новый прогресс-бар pi.Show "Подождите, работает макрос" ' отбражаем индикатор
' здесь код вашего макроса
pi.Hide ' закрываем индикатор End Sub
Подскажите, как сделать прогресс-бар работы макроса.
Sub ПростейшийПримерИспользованияПрогрессБара() Dim pi As New ProgressIndicator ' создаём новый прогресс-бар pi.Show "Подождите, работает макрос" ' отбражаем индикатор