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

Страницы: 1
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
ребзи, ну подсобите плз
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
Товарищи, спасибо большое!
Но я планировал реализовать эту опцию внутри UserForm1, чтобы она отрабатывала сразу, после выбора даты в календаре.
Там уже прописано копирование фиксированных диапазонов из каждого образца. А диапазон в данном случае - изменяющийся. Т.е. макрос должен "увидеть" сколько строк ему скопировать из каждого образца (может быть через счетз в книге будет происходить подсчет строк с данными, эта цифра записываться в ячейку, значение этой ячейки будет присваиваться переменной в макросе и потом эта переменная будет стоять в координатах ячейки, что будет второй ячейкой в диапазоне выделения (выше я обозначил ее X)).

Код простой, я бы даже сказала школьный курс, но я хочу доработать его, усовершенствовать. Добавить туда эту переменную, мб какой счетчик
Код
Private Sub CommandButton1_Click()Sheets("дефектные").Select
Range("B6").Value = UserForm1.DTPicker1.Value

On Error Resume Next
Windows("02.xls").Activate 'переключение на образец от первой организации
If Err = 0 Then
    Range("D6:AI6").Select 'здесь должен быть выбор D6:AIX, т.е. выделение от начала до последней строки, в которую внесла данные организация
    Selection.Copy
    Windows("свод.xlsm").Activate 'переключаемся на свод
    Range("D6").Select 'указываем куда вставлять. это первая вставка, поэтому начинаем с начала таблицы
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Windows("02.xls").Activate
    ActiveWindow.Close SaveChanges:=False

    
End If
On Error GoTo 0

On Error Resume Next
Windows("03.xls").Activate 'переключение на образец от второй организации
If Err = 0 Then

    Range("D6:AI6").Select 'здесь должен быть выбор D6:AIX т.е. выделение от начала до последней строки, в которую внесла данные организация

    Selection.Copy
    Windows("свод.xlsm").Activate 'переключаемся на свод
    Range("DX+6").Select 'указываем куда вставлять
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Windows("03.xls").Activate
    ActiveWindow.Close SaveChanges:=False
Изменено: postebaylo - 15.04.2018 10:35:59
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
Юрий М, Странно. В макросе книги свод в самом начале прописан календарь и запись даты в B6
Код
Private Sub CommandButton1_Click()
Sheets("дефектные").Select
Range("B6").Value = UserForm1.DTPicker1.Value

Но вообще, календарь - это не самое важное
Изменено: postebaylo - 15.04.2018 00:13:30
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
Юрий М,не заметил вашего сообщения. Виноват (нашел кнопку "имя")

Цитата
Юрий М написал: 1. Откуда в файле-сборщике взялись даты в столбце В?
при открытии свода - выскакивает календарик. после выбора даты она записывается в столбец B

Цитата
2. Откуда номера в столбце А?
Пока проставил вручную. В идеале: чтобы растягивалась настолько, сколько всего будет данных (строк) от всех организаций. Чтобы был счет им.

Цитата
3. Нужно ли копировать три первых строки, расположенных над шапкой таблицы?
Нет, только с 6 строки включительно

Цитата
4. Как Вы поймёте, где заканчиваются данные одной организации и начинаются данные другой?
столбец C - имя организации. Не проставил в прикрепленных файлах
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
26 организаций заполняют единой формы образец. Затем все образцы открываются (просто открываются 26 книг), открывает свод в неи запускается скрипт и происходит копирование. Параметры которого необходимо правильно задать.

Покумекал я и понял. Через СЧЁТЗ(D:D)-2 в первом образце считаем, сколько строк с данными внесла первая организация. Вводим под эту цифру переменную X. Затем копируем диапазон D6:AIX и вставляем в свод на ячейку D6. Затем на втором образце проделываем тоже самое, что делали на первом (т.е. копируем диапазон строк, в которые организация внесла данные). Переключаемся на свод и там ищем первую пустую ячейку, к примеру по столбцу D. И вставляем в нее из буфера. И так до конца.
Не могу сообразить как это реализовать.
Изменено: postebaylo - 14.04.2018 21:21:42
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
Да, спасибо, так лучше
Изменено: postebaylo - 14.04.2018 21:21:18
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
Умное копирование строк
Изменено: postebaylo - 14.04.2018 21:21:29
Как скопировать данные из однотипных листов нескольких книг на один лист?
 
Здравствуйте!

Имеется следующая ситуация. Необходимо собрать сведения от 26 организаций. Им созданы одного вида книги (образцы) в таблицы которых они вносят данные. Данных, у каждой конторы, может быть разное количество (т.е. копировать макросом заранее заданный диапазон не получается). Имеется сводная книга (свод), в которую надо скопировать все данные из образцов. Как реализовать это таким образом, чтобы макрос копировал нужное количество строк (столько, сколько заполнила каждая организация) и вставлял на следующую незаполненную в своде строчку (т.е. сразу после предыдущей организации)?

Вариант с копирование заранее заданного диапазона с большим запасом и последующим ручным (пока не знаю, как это сделать автоматически) удалением строк - не очень нравится. Есть мысли насчет функции СЧЁТЗ, чтобы она считала сколько нужно скопировать, но как дать понять, куда это нужно вставлять?

Надеюсь, изложил понятно. Книги прикрепил.
Изменено: postebaylo - 14.04.2018 20:34:44
Страницы: 1
Наверх