Страницы: 1
RSS
Макрос для переноса данных в другой файл
 
ДД, форумчане!

Помогите с написанием макроса, нужен динамический макрос для выбора файлов, чтобы копировать данные из выборочного файла,
Есть 2 файла, макрос должен быть в  новом файле, в файле (Ассигнования) в листе (сводная) есть суммы резервов, их надо скопировать и вставить в файл (погашение) в столбец I7, I14, I21 ... I49 по названию резервов (название резервов в столбце B)
Прошу помочь с макросом буду благодарен
Изменено: Angelo125 - 24.09.2019 12:21:11
 
Сам так написал, но выходит ошибка
Код
Private sh_ассигнование As Workbook
Private sh_погашение As Workbook
Private end1 As Long

Sub hh()

Call обзор_файла1
Call обзор_файла2
Call copypaste

End Sub

Private Sub обзор_файла1()
result = Application.GetOpenFilename(MyFilter, , "Открой ассигнование", "открой")
If result = "False" Then
    Kill_all = True
    Exit Sub
End If
Workbooks.Open Filename:=result, ReadOnly:=1
Set sh_ассигнование = Workbooks(Dir(result))
End Sub

Private Sub обзор_файла2()
result = Application.GetOpenFilename(MyFilter, , "Открой погашение", "открой")
If result = "False" Then
    Kill_all = True
    Exit Sub
End If
Workbooks.Open Filename:=result, ReadOnly:=1
Set sh_погашение = Workbooks(Dir(result))
End Sub


Private Sub copypaste()
On Error Resume Next
sh_ассигнование.Sheets("сводная").ShowAllData
On Error GoTo 0

On Error Resume Next
sh_погашение.Sheets("КП по NPL ФЛ").ShowAllData
On Error GoTo 0

'sh_ассигнование = ThisWorkbook
sh_ассигнование.Sheets("сводная").Range("B14").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I8").Select
Selection.Paste

'sh_ассигнование = ActiveWorkbook
sh_ассигнование.Sheets("сводная").Range("B6").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I15").Select
Selection.Paste

'sh_ассигнование = ActiveWorkbook
sh_ассигнование.Sheets("сводная").Range("B9").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I22").Select
Selection.Paste

'sh_ассигнование = ActiveWorkbook
sh_ассигнование.Sheets("сводная").Range("B7").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I29").Select
Selection.Paste

'sh_ассигнование = ActiveWorkbook
sh_ассигнование.Sheets("сводная").Range("B8").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I36").Select
Selection.Paste

'sh_ассигнование = ActiveWorkbook
sh_ассигнование.Sheets("сводная").Range("B17").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I43").Select
Selection.Paste

'sh_ассигнование = ActiveWorkbook
sh_ассигнование.Sheets("сводная").Range("B18").Selection
Selection.Copy
sh_погашение = ActiveWorkbook
sh_погашение.Sheets("КП по NPL ФЛ").Range("I50").Select
Selection.Paste

End Sub
Изменено: Angelo125 - 24.09.2019 15:53:43
 
См. вариант.
Все три файла должны находиться в одной папке.
Файл "Ассигнования" немного отредактировал - пояснения на листе. Файл с макросом можете переименовать.
 
Цитата
Юрий М написал:
Файл "Ассигнования" немного отредактировал - пояснения на листе. Файл с макросом можете переименовать.
Спасибо, но как написать так чтобы он просто копировал из одной ячейки(сводная) в определенную ячейке(КП по NPL ФЛ)
Например: из В14(сводная) в ячейку I8(КП по NPL ФЛ) ?
Подскажите пж
Код
 sh_ассигнование.Sheets("сводная").Range("B14").Selection
           Selection.Copy
           sh_погашение.Sheets("КП по NPL ФЛ").Range("I8").Selection
           Selection.Paste
Изменено: Angelo125 - 25.09.2019 08:30:07
 
Странно: неужели мой макрос не выполняет копирование?
По вопросу: в общем случае это будет выглядеть так:

Код
Workbooks("Книга1").Sheets("Лист1").Range("A1").Copy Workbooks("Книга2").Sheets("Лист3").Range("D4")
 
пример
 
Почему примеры в первом сообщении - это примеры, а в последем Вашем  почти 300 екБ?
 
Цитата
Юрий М написал:
Все три файла должны находиться в одной папке.

добрый день, а если у меня файлы будут лежать в разных папках (и даже дисках), просто путь (до файла, в который будет копироваться) прописать подробный?
Страницы: 1
Наверх