Страницы: 1
RSS
Загрузка файла Excel с таблицей и разделение ее на две части
 
Добрый день,

Помогите, пожалуйста, с задачей:
Надо написать скрипт VBA, который загрузит все данные из файла "Договоры(выгрузка).xlsx" и разложит по таблицам "Договоры" и "Залоги"

Более детальное описание задачи:

1. В  файле Excel с двумя вкладками ("Договоры" и "Залоги") при запуске скрипта вызывается окно для выбора файла (на локальном или сетевом диске).
2. Выбирается файл ( в нашем случае - Договоры(выгрузка).xlsx)
3. Скрипт загружает файл "Договоры(выгрузка).xlsx", затирает предыдущие данные на обеих вкладках, если они есть, и представляет загруженные данные в виде двух таблиц на двух разных вкладках "Договоры" и "Залоги", как представлено в файле "Результат".

Буду очень признателен за помощь.
Изменено: havoc_mind - 24.06.2021 10:53:32
 
а как должен выглядеть конечный результат исходя из вашего файла? Обычно кто хочет получить помощь показывают конечный результат либо рядом на листе, либо на соседнем.
Изменено: New - 23.06.2021 23:09:07
 
Извиняюсь, поправил файл: на вкладке "Результат".
Изменено: vikttur - 23.06.2021 23:22:13
 
)) по вашему изменённому файлу (по листу Результат), я так понял, что надо просто добавить пустой столбец H (пустой столбец между столбцами Дата закрытия договора и ID Залога 1). По моему, это единственное отличие листа Договор и Результат.
Вы какой-то не многословный, вам не кажется? Какое отличие данных на листе Договор и на листе Результат, кроме того, что добавлен пустой столбец H ?
Может я в 3 часа ночи что-то пропустил? Можно поподробнее вашу задачу описать?

P.S. Вы видите, что просмотров вашей темы почти 90 раз, а ответов вообще нет. Значит люди не понимают, что вы хотите сделать, читают ваше сообщение, смотрят ваш файл, ничего не понятно и идут мимо. А там где понятно, в соседних темах - там отвечают, помогают. Я тоже очень хочу вам помочь, но пока не понимаю как...

Код для вставки пустого столбца в столбец H будет такой
Код
Sub Макрос1()
    Columns("H:H").Insert
End Sub
Изменено: New - 24.06.2021 03:28:52
 
Если вдруг имеется в виду обычное копирование из одной книги в другую, то вот
Код
Sub Macro1()
    Dim f As Variant, PWb As Workbook
    f = Application.GetOpenFilename
    If f = False Then Exit Sub
    Set PWb = Workbooks.Add
    With Workbooks.Open(f, ReadOnly:=True).Worksheets(1)
        Intersect(.UsedRange, .Columns("A:G")).Copy
        PWb.Worksheets(1).Paste
        Intersect(.UsedRange, .Columns("H:K")).Copy
        PWb.Worksheets.Add.Paste
    End With
'    PWb.Worksheets(1).UsedRange.EntireColumn.AutoFit
'    PWb.Worksheets(2).UsedRange.EntireColumn.AutoFit
End Sub
 
New , большое спасибо за ваше сообщение.

Согласен, описание поверхностное. Постараюсь детальней:
1. В  файле Excel с двумя вкладками ("Договоры" и "Залоги") при запуске скрипта вызывается окно для выбора файла (на локальном или сетевом диске).
2. Выбирается файл ( в нашем случае - Договоры(выгрузка).xlsx)
3. Скрипт загружает файл "Договоры(выгрузка).xlsx", затирает предыдущие данные на обеих вкладках, если они есть, и представляет загруженные данные в виде двух таблиц на двух разных вкладках "Договоры" и "Залоги", как представлено в файле "Результат".

Прикладываю обновленные файлы с исходными данными и результатом.
Изменено: havoc_mind - 24.06.2021 10:55:52
 
Цитата
havoc_mind написал:
Постараюсь детальней
не получилось(((
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
А на каком моменте возникает непонимание?  
Изменено: vikttur - 24.06.2021 10:35:57
 
файл не пустой в нем как минимум видимо есть макрос (его нужно написать, но лежать он будет именно в этом файле)
в файле УЖЕ есть 2 закладки (листа) Договора и Залоги
в этих закладках могут быть результаты предыдущей работы макроса, что с ними делать?
все что я написал выше это только мои догадки, а не ваше строгое описание задачи
сценариев может быть много, разных, но тот который вам нужен, нужно описать желательно полностью и коротко.

и нужно описание что из выбранного файла и куда должно попасть
понимаете, описание задачи - это когда прочитав описание другой человек может просто сесть и начинать писать макрос
на основании вашего описания можно только сесть и задумчиво почесать репу, правда можно написать единственную процедуру - выбрать файл с данными.
все остальное - это вопросы
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко спасибо за ваш ответ.
Скорректировал описание задачи в первом посте.
 
havoc_mind, потестируйте файл
Изменено: New - 24.06.2021 13:43:26
 
New спасибо большое.
Страницы: 1
Наверх