Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Макрос, вытащить данные и расставить по местам

Автор kzld, 08.01.2013, 14:37

« назад - далее »

kzld

Имеем вот такой макрос
Public Sub materialykredit01()
Dim Sht1 As Worksheet, Sht2 As Worksheet, flag As Boolean
For Each Sht1 In Workbooks("100.00.030_registr.xlsm" ).Worksheets 'это файл 100.00.030_registr.xlsm это файл получатель
flag = False 'false если неправильно
For Each Sht2 In Workbooks("MNT.xlsx").Worksheets 'это файл MNT.xlsx это файл источник
If Sht2.Name = Sht1.Name Then 'это сооветствие имён листов в книгах
flag = True 'true - правильно
Exit For 'выход
End If
Next 'следующий
If flag Then 'если флаг then (затем) тогда
Sht1.Range("E17:U654").ClearContent s 'очищаем предыдущие значения в файле приемнике
For I = 3 To 5000 'просматриваем файл "MNT.slsx" от 3 строки до 5000
If Sht2.Cells(I, 6).Value = 202 And Sht2.Cells(I, 8).Value <> "" Then 'просматриваем столбец 6 "MNT.xlsx" КРЕДИТ ищем 202, просматриваем столбец 8 дата
For k = 17 To 664 'ищем в файле приемнике совпадение даты
If Sht1.Cells(k, 5).Value = 0 And Sht1.Cells(k, 1).Value = Sht2.Cells(I, 8).Value Then 'если в файле приемнике РНН пусто, смотрим файл приемник столбец 1 дата, если совпадает тогда
Sht1.Cells(k, 5).Value = Sht2.Cells(I, 14).Value 'если в файле приемнике РНН пусто, смотрим в работу столбец 14 РНН, копируем из работы в кассу
Sht1.Cells(k, 13).Value = Sht2.Cells(I, 20).Value 'если в файле приемнике РНН пусто, смотрим в файл источник столбец 14 РНН, копируем из источника в получатель
Exit For
End If
Next k
End If
Next I
End If
Next
End Sub


Макрос делает следующее :
Просматривает файл источник, находит в столбце 6 значение 220
Далее макрос "запоминает" значение в столбце 14 файла источника и "запоминает" дату в файле источнике в столбце 8 а потом ищет соответствие дат в файле получателе. Как только найдется совпадение даты,макрос копирует значение из столбца 14 файла источника в столбец 5 файла получателя и соответственно из столбца 20 в столбец 13
Еще хочу дополнить макрос - но не знаю как
Желаю что бы макрос просматривал файл источник и брал из него значение расположенное в столбце 9 и копировал бы значение в файл приемник в столбец 21

Wasilic

#1
Не отвечают?
Тяжелый случай!
А все потому, что ковыряться в чужом макросе, еще хуже чем в чужом огороде, да еще и ночью, то бишь без примера.
Нам что, самим создавать файлы для проверки макроса?
Вы на форуме не первый раз, а п.2 правил не читали.
Попробуйте, в макросе после строки-
Sht1.Cells(k, 13).Value = Sht2.Cells(I, 20).Value 
дописать строку-
Sht1.Cells(k, 21).Value = Sht2.Cells(I, 9).Value


Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.