powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос, который тянет информацию из другого файла
16 сообщений из 16, страница 1 из 1
Макрос, который тянет информацию из другого файла
    #38702311
shake22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Подскажите, плиз, как написать макрос, который будет находиться в одном файле, а инфу тянуть из другого:
1. В исходнике(1ый файл) несколько столбцов (10), мне нужна информация в 3х из них
2. В конечном файле(2ой файл) 3 столбца с такими же названиями
3. Нужно что бы при нажатии макрос обновлял(не добавлял) конечный файл данными из 1го, желательно даже не открывая его.
4. ссылки и обновить связи, ВПР не подходят, т.к. кол-во строк будет всегда меняться, ссылки виде "0" или неверных значений не нужны, нужен чистый файл без ссылок.
5. Есть вот такой вот кусок макроса, возможно неправильный и обрубленный:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Sub Кнопка2 Щелкнуть ()

'CORP budget

      Workbooks.Open Filename:= _

        "\\file-server\Fin_Analisys\BUDGET\2013\Q3-Q4\Sales division\Corp\YR-CORP-Expenses Budget-2013_Q3-Q4update.xls", _

        UpdateLinks:=0

    Sheets("Budget_2011 (EURO)").Select

    Range("A1:R227").Select

    Selection.Copy

    Windows("Budget 2013.xls").Activate

    Sheets("CORP").Select

    Cells.Select

    Range("B1").Activate

    ActiveSheet.Paste

    Application.CutCopyMode = False

    Selection.Copy

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

        Windows("YR-CORP-Expenses Budget-2013_Q3-Q4update.xls").Activate

              Windows("YR-CORP-Expenses Budget-2013_Q3-Q4update.xls").Close



Модератор: Учимся использовать тэги оформления кода - FAQ

Помогите, пожалуйста!!! :)
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38702525
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22, доброе утро. Нужно, чтобы формулы остались или просто значения копировались?
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38702527
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22,

Код: vbnet
1.
Range("A1:R227").Select



так 3 столбца или больше? :)
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38702544
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22,

Так попробуйте. Код во 2 файл. Особо не проверял.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub Sbor()
Dim a As Workbook, b As Workbook, p As Long, q As Long
Set a = ThisWorkbook
p = a.Sheets(1).Cells(Rows.Count, "B").End(xlUp).Row
a.Sheets(1).Range("B1:R" & CStr(p) & "").ClearContents
Set b = Workbooks.Open(Filename:="\\file-server\Fin_Analisys\BUDGET\2013\Q3-Q4\Sales division\Corp\YR-CORP-Expenses Budget-2013_Q3-Q4update.xls", UpdateLinks:=0)
q = b.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
b.Sheets(1).Range("A1:R" & CStr(q) & "").Copy _
    Destination:=a.Sheets(1).Range("B1")
b.Close savechanges:=False
End Sub
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38702572
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не забудьте поменять название листов на свои.
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704146
shake22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim12345678,

Спасибо огромное за код!

После пары изменений получилось такое:

Sub Sbor()
Dim a As Workbook, b As Workbook, p As Long, q As Long
Set a = ThisWorkbook
p = a.Sheets("1").Cells(Rows.Count, "B").End(xlUp).Row
a.Sheets("1").Range("B5:B" & CStr(p) & "").ClearContents
p = a.Sheets("1").Cells(Rows.Count, "E").End(xlUp).Row
a.Sheets("1").Range("E5:E" & CStr(p) & "").ClearContents
p = a.Sheets("1").Cells(Rows.Count, "F").End(xlUp).Row
a.Sheets("1").Range("F5:F" & CStr(p) & "").ClearContents
Set b = Workbooks.Open(Filename:="D:\222.xls", UpdateLinks:=0)
q = b.Sheets("1").Cells(Rows.Count, "A").End(xlUp).Row
b.Sheets("1").Range("A5:A" & CStr(q) & "").Copy _
Destination:=a.Sheets("1").Range("B5")
q = b.Sheets("1").Cells(Rows.Count, "D").End(xlUp).Row
b.Sheets("1").Range("D5:D" & CStr(q) & "").Copy _
Destination:=a.Sheets("1").Range("E5")
q = b.Sheets("1").Cells(Rows.Count, "E").End(xlUp).Row
b.Sheets("1").Range("E5:E" & CStr(q) & "").Copy _
Destination:=a.Sheets("1").Range("F5")
b.Close savechanges:=False
End Sub

Сделал отдельные столбцы и так что бы не трогало шапку.

1) Осталась задачка: как вставлять именно значения? и так чтобы без форматов?
Через копипаст я нашел как, но тут через "destination". Соединить или заменить их как-то не получилось :(

2) И.... я наверное совсем обнаглею, если я спрошу как добавить сюда: что бы он брал не определенные столбцы а ВПР(VLOOKUP)-ом искал (или конкретные значения или брал инфу для поиска с определенных ячеек) ? :)

Заранее благодарю! :)

П.С.: я не въехал как выделять код по FAQ, актуализируйте и сделайте его проще что ли. Особенно порадовали там комментарии, в которых написано: сделайте так, а тут лучше так, а то оно по ходу не работает :)
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704162
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shake22я не въехал как выделять код по FAQ,нажать "цитировать" на сообщении с уже оформленным кодом и посмотреть, как он оформлен, тоже не получилось?
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704167
shake22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim12345678,

Копипаст со значениями сделал, вопрос с ВПР ом остается открытым :)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub Sbor()
Dim a As Workbook, b As Workbook, p As Long, q As Long
Set a = ThisWorkbook
p = a.Sheets("1").Cells(Rows.Count, "B").End(xlUp).Row
a.Sheets("1").Range("B5:B" & CStr(p) & "").ClearContents
p = a.Sheets("1").Cells(Rows.Count, "E").End(xlUp).Row
a.Sheets("1").Range("E5:E" & CStr(p) & "").ClearContents
p = a.Sheets("1").Cells(Rows.Count, "F").End(xlUp).Row
a.Sheets("1").Range("F5:F" & CStr(p) & "").ClearContents
Set b = Workbooks.Open(Filename:="D:\222.xls", UpdateLinks:=0)
q = b.Sheets("1").Cells(Rows.Count, "A").End(xlUp).Row
b.Sheets("1").Range("A5:A" & CStr(q) & "").Copy
a.Sheets("1").Range("B5").PasteSpecial Paste:=xlPasteValues
q = b.Sheets("1").Cells(Rows.Count, "D").End(xlUp).Row
b.Sheets("1").Range("D5:D" & CStr(q) & "").Copy
a.Sheets("1").Range("E5").PasteSpecial Paste:=xlPasteValues
q = b.Sheets("1").Cells(Rows.Count, "E").End(xlUp).Row
b.Sheets("1").Range("E5:E" & CStr(q) & "").Copy
a.Sheets("1").Range("F5").PasteSpecial Paste:=xlPasteValues
b.Close savechanges:=False
End Sub
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704189
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22,

про ВПР не понял, объясните поподробнее, пожалуйста.
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704204
shake22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim12345678,

я задал копировать определенные столбцы, например A D E из одной книги(данные) в столбцы B E F другой книги(там, где макрос).

Хочу что бы макрос брал не заданные столбцы, а брал шапку(определенные названия) столбцов B E F, и по ней сам искал нужные столбцы в книге с данными
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704503
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22,

ну так пробегитесь по шапке поиском, находите ячейку с нужным названием и дальше копируете что требуется.
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704507
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22Maxim12345678,

Копипаст со значениями сделал, вопрос с ВПР ом остается открытым :)

Код: vbnet
1.
2.
3.
4.
5.
6.
p = a.Sheets("1").Cells(Rows.Count, "B").End(xlUp).Row
a.Sheets("1").Range("B5:B" & CStr(p) & "").ClearContents
p = a.Sheets("1").Cells(Rows.Count, "E").End(xlUp).Row
a.Sheets("1").Range("E5:E" & CStr(p) & "").ClearContents
p = a.Sheets("1").Cells(Rows.Count, "F").End(xlUp).Row
a.Sheets("1").Range("F5:F" & CStr(p) & "").ClearContents



А если у Вас разное количество в столбцах B, E и F, что будете делать? Зачем так определили p? А если оно одинаковое, зачем ее переопределять 3 раза?
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704509
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, лучше определить p дин раз.
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704909
shake22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim12345678shake22,

ну так пробегитесь по шапке поиском, находите ячейку с нужным названием и дальше копируете что требуется.

Так он будет универсальнее, что ли. Если тянуть из разных таблиц и файлов(но содержимое шапки и таблиц то же), не нужно будет искать столбцы и забивать их в макрос, а просто поменять место нахождения файла
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38704919
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shake22,

Зачем тогда вообще искать по шапке, если у Вас всегда идентичная структура файлов? Тогда просто создавайте шапку в файле, в котором будут происходить вычисления, и копируйте нужные диапазоны.
...
Рейтинг: 0 / 0
Макрос, который тянет информацию из другого файла
    #38705265
shake22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim12345678,

идентичная отдельная информация (например, столбцы), но не структура.

Начальству нужно все "сейчас и сразу", по нажатию одной кнопки.
А мне нужно этот макрос делать быстро
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос, который тянет информацию из другого файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]