Страницы: 1
RSS
Три таблицы из разных файлов Excel в одну для руководителя
 
Доброго времени суток.
В вопросах написания макросов и создания сводных таблиц, я новичок, поэтому прошу:
Задача - есть три файла с идентичными таблицами (одинаковые столбцы, но разное количество строк), которые редактируют три разных пользователя на одном диске но в разных папках. Требуется создать четвертый итоговый документ (редактироваться не будет), в который автоматом переносились бы таблицы из остальных трех файлов, одна за другой. То есть, просто копировались бы все данные по очереди из трех других файлов. При этом есть одно пожелание: 1. Необходимо, чтобы при копировании сохранялось и исходное форматирование (ширина столбцов, высота строк, цвета ячеек) и при возможности гиперссылки.
Подскажите, как лучше это реализовать? Если только с помощью написания макроса, то я бы хотел увидеть пример подобного макроса, который будет просматривать и копировать все заполненные строки одного файла, затем второго и так далее.

Пример таблицы во вложении.

Заранее благодарю!
 
Цитата
написал:
одинаковые столбцы, но разное количество строк), которые редактируют три разных пользователя на одном диске но в разных папках. Требуется создать четвертый итоговый документ (редактироваться не будет), в который автоматом переносились бы таблицы из остальных трех файлов, одна за другой.
Называется Консолидация данных ну или через PQ - погуглите, справитесь!
Изменено: Sanim - 13.02.2024 22:28:54
 
Цитата
написал:
Доброго времени суток. В вопросах написания макросов и создания сводных таблиц
Файл с кодом VBA во вложении.

Ссылки на файлы укажите в ячеqках А2:A4.
Итоговый файл сохраниться с именем Сводная книга.xlsx, там же где будет лежать прикрепленный файл "Запуск"
Изменено: Chegga - 15.02.2024 22:18:19
....Если надо объяснять, то не надо объяснять!
 
Chegga, С какой целью Вы процитировали ВСЕ стартовое сообщение? Исправьте свое сообщение
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Ссылки на файлы укажите в ячеqках А2:A4.Итоговый файл сохраниться с именем Сводная книга.xlsx, там же где будет лежать прикрепленный файл "Запуск"
Chegga, сегодня запустил программу на работе и обнаружил ошибку после которой данные из ячеек исчезают.
Помогите пожалуйста победить эту ошибку.
 
 
Алексей Бабаев, добрый день.

Немного поправил макрос от Chegga, чтобы не выдавались предупреждения в ходе работы.
Код
Sub test()Dim arr() As Variant
Application.DisplayAlerts = False
...
Application.DisplayAlerts = True
End Sub
 
Цитата
написал:
Немного поправил макрос от  Chegga , чтобы не выдавались предупреждения в ходе работы.
andypetr, добрый вечер!
Благодарю за отклик!
К сожалению с предупреждением ушли и данные из ячеек.
Не могу понять в чем дело? На домашнем компьютере все работает идеально, а на работе хромает(((
Единственное, что я меняю это:
Else
       eRow = Workbooks(Dir(arr(i))).Worksheets("Снабжение").Cells(Rows.Count, 1).End(xlUp).Row
           Workbooks(Dir(arr(i))).Worksheets("Снабжение").Range("A2:J" & eRow).Copy                            ("A2:J" & eRow) на ("A3:K" & eRow)
           Workbooks(NameBook & ".xlsx").Worksheets("Сводная Таблица").Activate
       eRow = Workbooks(NameBook & ".xlsx").Worksheets("Сводная Таблица").Cells(Rows.Count, 1).End(xlUp).Row
           Range("A" & eRow + 1).Select: ActiveSheet.Paste
Изменено: Алексей Бабаев - 15.02.2024 21:32:20
 
Фото, к сожалению, даёт мало информации.
Вижу, что по сравнению с первым выложенным файлом ("С макросом создание папок и ссылками на папки.xlsm"), теперь:
  • Данные начинаются с 3-й строки.
  • Добавился столбец.
  • Появились имена (например, "Адреса" - как на фото с вопросом).
Попробуйте ещё такой вариант.
В числе прочего, формулы заменяются значениями.
Если это не надо делать - закомментируйте 2 пары строк под комментариями:
Код
        ' Убираем формулы из скопированного (
        Range("A3:K" & EndRow).Copy
        Range("A3:K" & EndRow).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        ')

Если всё равно не будет работать - нужен будет новый файл-пример.
Изменено: andypetr - 16.02.2024 08:53:07
 
Цитата
написал:
Если всё равно не будет работать - нужен будет новый файл-пример.
andypetr, доброго Вам времени суток!
Все работает как часы кроме ссылок в папки но это, я думаю, что мы переживем.
Спасибо Вам за помощь!
 
Цитата
написал:
кроме ссылок в папки
Попробуйте проверить исходные файлы, потому, что в примере ссылок на папки не было в ячейках, были только символы ">>>>>>".
Если в исходных файлах, будут ссылки, они так же перенесутся в сводный документ.
....Если надо объяснять, то не надо объяснять!
 
Уважаемые, Chegga, andypetr, доброго Вам времени суток!
В принципе меня и мое руководство устроил "запуск3" за, что я вам очень благодарен!
Если не сложно, прошу добавить возможность создания рабочих ссылок "Ссылка в папку"
Заранее благодарю!!!
 
Алексей Бабаев, добрый день.
Внёс изменения:
  • На листе "Сводная Таблица" убираю "умную" таблицу (внешний вид не изменился) - она при заполнении мешала.
  • Такую же таблицу убираю в исходных файлах (лист "Снабжение") - всё равно потом изменения не сохраняются.
  • Столбец J (с гиперссылкой) обрабатываю особым образом, в итоге в нём остаются ссылки на папки, содержащиеся в исходных файлах.
Проверяйте все столбцы на реальных файлах, вдруг ещё что-то не так будет.
 
andypetr, добрый день!
Честно говоря уже не удобно Вас просить.
Надеюсь, что это последняя просьба.
Если возможно измените пожалуйста форматирование ссылок в столбце J.
Заранее благодарю!
Изменено: Алексей Бабаев - 27.02.2024 18:37:08 (Забыл добавить файл с примером)
 
andypetr, добрый день!
Честно говоря уже не удобно Вас просить.
Надеюсь, что это последняя просьба.
Если возможно измените пожалуйста форматирование ссылок в столбце J.
Заранее благодарю!
 
Цитата
написал:
Честно говоря уже не удобно Вас просить.
Всё нормально, не сильно пока устал. :)
Так?

PS. Ещё по исходным файлам совет (см. "Автоматизация процессов снабжения и учета_1.XLSM").
Если папки (открываемые) создаются в той же папке, где исходный файл, то можно ссылаться на текущую папку с помощью функции ЯЧЕЙКА (см. ячейку M1), затем это использовать в гиперссылках на папки (см. J3:J5).
 
andypetr, добрый день!
"Всё нормально, не сильно пока устал. " Благодарю!
В свое время, я в уроке Николая подсмотрел формулу на переход в папку =ГИПЕРССЫЛКА("V:\Служба Эксплуатации\Инженеры МуМу\Общая Папка Инженеры МуМу\1 Отдел ВиК\Бабаев А\2 Снабжение\"&Снабжение!$B3;">>>>>") и макрос который создает папки по адресу расположения файла Автоматизация процессов снабжения и учета_1.XLSM.
Таблицу Автоматизация процессов снабжения и учета_1.XLSM ведут три сотрудника в связи с чем возник вопрос о создании одной сводной.
В Запуск формирования сводной таблицы_АП.xlsm  создает адрес расположения папки и в принципе этого достаточно за исключением, что они по умолчанию залезают в столбец I смотри  IMG-20240227-WA0010.jpg.
Если есть возможность сделать так чтобы ссылки ровнялись по левому краю смотри IMG-20240227-WA0011.jpg и этого будет пока достаточно :)
 
Цитата
написал:
Если есть возможность сделать так чтобы ссылки ровнялись по левому краю
Это уже сегодняшний вариант так отрабатывает? Запуск формирования сводной таблицы_АП_2.xlsm?
Я же там специально в коде прописал Общее выравнивание (строки будут по левому краю):
Код
    cell.HorizontalAlignment = xlGeneral
 
Цитата
написал:
Это уже сегодняшний вариант так отрабатывает?
Так точно.
 
Ещё раз проверил у себя - текст ссылок выровнен слева (мы же про файл-результат "Сводная книга.xlsm" говорим?).
Попробуйте у себя в VBA поставить принудительно выравнивание влево - строка 62, в конце процедуры:
Код
' Возвращаем гиперссылку:
For Each cell In Range("J3:J" & EndRow)
    cell.FormulaLocal = "=ГИПЕРССЫЛКА(""" & cell.Value & """)"
вот тут -> cell.HorizontalAlignment = xlGeneral ' убрать, если нужно сохранить исходное выравнивание (по центру)
Next
Вместо:
Код
    cell.HorizontalAlignment = xlGeneral ' убрать, если нужно сохранить исходное выравнивание (по центру)
Исправить на:
Код
    cell.HorizontalAlignment = xlLeft
 
Всем здравствуйте! У меня похожий вопрос. Есть 5 таблиц (бюджеты по каждой отдельной компании. Всего 5 компаний). Наименование статей местами немного отличаются, так как  по каждой компании бюджет формировали разные люди и каждый делал как ему удобно. Многие статьи конечно одинаковые, разве что могут отличаться по шрифту, размеру. Задача: Свести все данные в одну таблицу, таким образом, чтобы не было повторяющихся статей и суммы по каждой статье суммировались. Еще как вариант, если это возможно сделать в эксель, чтобы просто всё консолидировать в одну таблицу, но с условием, чтобы было понятно в наименовании статьи расходов или доходов к какому первоисточнику это относится, т.е. с какой таблицы подтянулось название статьи и сумма. Может какой-то префикс будет стоять для обозначения. К примеру, есть компании А, Б, В, Г, Д. В любом бюджете каждой компании, есть наименование такой статьи как "транспортные расходы". Так вот, надо чтобы в сводной таблице было следующее:
Транспортные расходы "А" - сумма
Транспортные расходы "Б" - сумма
и т.д.
Либо как в первом варианте, т.е. если наименование статьи один в один совпадает по всем компаниям, тогда:
Транспортные расходы - сумма с 5 файлов. Причем чтобы эта сумма не просто была в виде значения, а была формула, которая показывает откуда она подтягивает суммы.  
Заранее благодарен за помощь!  
 
Иван Костюченко, добрый день.
Ваш вопрос хоть и похожий, но не точь-в-точь, поэтому лучше создать отдельную тему (которую прочитают все участники, а не только я и Алексей Бабаев).
И приложить файлы-примера: хотя бы 2 исходных файла (если у всех 5 файлов одинаковая структура) и файл-результат (где показано, что надо суммировать, а что берётся отдельной строкой).
Данные для примера можно из головы привести, хотя бы 3-4 строки на файл.
 
Коллеги, всем доброго дня!
Запуск формирования сводной таблицы_АП_1.xlsm и Запуск формирования сводной таблицы_АП_2.xlsm по не известной мне причине перестали формировать сводную.
Запуск формирования сводной таблицы.xlsm работает без сбоев. С руководителем остановились на этом варианте.

Всем большое спасибо за помощь!!!
Страницы: 1
Наверх