Страницы: 1
RSS
помогите!!!
 
подскажите плиз,    
есть таблица с данными, на втором листе бланк платежного документа. Записал макрос для автоматического его заполнения и печати. Как можно сделать чтоб макрос повторялся для каждой следующей строки и остановился по завершении данных?
 
Давайте текст, который записали, поправим.
 
Я вообщето дилетант, так что сильно не смейтесь)))  
 
Сначала выделяем строку, потом запускаем макрос:  
 
 
Sub Макрос3()  
'  
' Макрос3 Макрос  
' Макрос записан 14.05.2008 (dav)  
'  
' Сочетание клавиш: Ctrl+я  
'  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("Лист2").Select  
   ActiveWindow.ScrollColumn = 1  
   Range("A1").Select  
   ActiveSheet.Paste  
   Range("A1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("AE8:AL8").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=45  
   Range("AE57:AI57").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("B1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("S59:Y59").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=-6  
   Range("AC41:AH41").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=-15  
   Range("AC26:AH26").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=-19  
   Range("T10:Y10").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("C1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("H10:M10").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=39  
   Range("H59:L59").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("D1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("E58:AQ58").Select  
   ActiveSheet.Paste  
   ActiveWindow.LargeScroll Down:=-2  
   Range("O9:AP9").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("E1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   ActiveWindow.SmallScroll Down:=12  
   Range("AF35:AH35").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=18  
   Range("AF50:AH50").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("F1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("O48:X48").Select  
   ActiveSheet.Paste  
   ActiveWindow.LargeScroll Down:=-1  
   ActiveWindow.ScrollRow = 16  
   ActiveWindow.ScrollRow = 17  
   ActiveWindow.ScrollRow = 18  
   ActiveWindow.ScrollRow = 19  
   ActiveWindow.ScrollRow = 20  
   ActiveWindow.ScrollRow = 21  
   ActiveWindow.ScrollRow = 22  
   ActiveWindow.ScrollRow = 23  
   ActiveWindow.ScrollRow = 24  
   ActiveWindow.ScrollRow = 25  
   ActiveWindow.ScrollRow = 26  
   ActiveWindow.ScrollRow = 27  
   ActiveWindow.ScrollRow = 28  
   ActiveWindow.ScrollRow = 29  
   ActiveWindow.ScrollRow = 30  
   ActiveWindow.ScrollRow = 29  
   ActiveWindow.ScrollRow = 28  
   Range("O33:X33").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("G1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("M39:X40").Select  
   ActiveSheet.Paste  
   ActiveWindow.ScrollRow = 29  
   ActiveWindow.ScrollRow = 30  
   ActiveWindow.ScrollRow = 31  
   ActiveWindow.ScrollRow = 32  
   ActiveWindow.ScrollRow = 33  
   ActiveWindow.ScrollRow = 34  
   ActiveWindow.ScrollRow = 35  
   ActiveWindow.ScrollRow = 36  
   ActiveWindow.ScrollRow = 37  
   ActiveWindow.ScrollRow = 38  
   ActiveWindow.ScrollRow = 39  
   ActiveWindow.ScrollRow = 40  
   ActiveWindow.ScrollRow = 41  
   ActiveWindow.ScrollRow = 42  
   ActiveWindow.ScrollRow = 43  
   ActiveWindow.ScrollRow = 44  
   ActiveWindow.ScrollRow = 45  
   ActiveWindow.ScrollRow = 46  
   ActiveWindow.ScrollRow = 47  
   ActiveWindow.ScrollRow = 48  
   Range("B54:AG54").Select  
   ActiveSheet.Paste  
   ActiveWindow.ScrollRow = 47  
   ActiveWindow.ScrollRow = 46  
   ActiveWindow.ScrollRow = 45  
   ActiveWindow.ScrollRow = 44  
   ActiveWindow.ScrollRow = 43  
   ActiveWindow.ScrollRow = 42  
   ActiveWindow.ScrollRow = 41  
   ActiveWindow.ScrollRow = 40  
   ActiveWindow.ScrollRow = 37  
   ActiveWindow.ScrollRow = 36  
   ActiveWindow.ScrollRow = 34  
   ActiveWindow.ScrollRow = 33  
   ActiveWindow.ScrollRow = 30  
   ActiveWindow.ScrollRow = 29  
   ActiveWindow.ScrollRow = 28  
   ActiveWindow.ScrollRow = 27  
   ActiveWindow.ScrollRow = 26  
   ActiveWindow.ScrollRow = 25  
   ActiveWindow.ScrollRow = 24  
   ActiveWindow.ScrollRow = 23  
   ActiveWindow.ScrollRow = 22  
   ActiveWindow.ScrollRow = 21  
   ActiveWindow.ScrollRow = 20  
   ActiveWindow.ScrollRow = 19  
   ActiveWindow.ScrollRow = 18  
   ActiveWindow.ScrollRow = 17  
   ActiveWindow.ScrollRow = 16  
   Range("M24:X25").Select  
   ActiveSheet.Paste  
   ActiveWindow.ScrollRow = 15  
   ActiveWindow.ScrollRow = 14  
   ActiveWindow.ScrollRow = 13  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 11  
   ActiveWindow.ScrollRow = 10  
   ActiveWindow.ScrollRow = 9  
   ActiveWindow.ScrollRow = 8  
   ActiveWindow.ScrollRow = 6  
   ActiveWindow.ScrollRow = 5  
   ActiveWindow.ScrollRow = 4  
   ActiveWindow.ScrollRow = 3  
   ActiveWindow.ScrollRow = 2  
   ActiveWindow.ScrollRow = 1  
   Range("P2:AN2").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("H1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   ActiveWindow.SmallScroll Down:=42  
   Range("AI62").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("I1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("D55:AP55").Select  
   ActiveSheet.Paste  
   ActiveWindow.LargeScroll Down:=-1  
   Range("Y39:AH40").Select  
   ActiveSheet.Paste  
   Range("Y24:AH25").Select  
   ActiveSheet.Paste  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 11  
   ActiveWindow.ScrollRow = 10  
   ActiveWindow.ScrollRow = 9  
   ActiveWindow.ScrollRow = 8  
   ActiveWindow.ScrollRow = 7  
   ActiveWindow.ScrollRow = 6  
   ActiveWindow.ScrollRow = 5  
   ActiveWindow.ScrollRow = 4  
   ActiveWindow.ScrollRow = 3  
   ActiveWindow.ScrollRow = 2  
   ActiveWindow.ScrollRow = 1  
   Range("P4:AN4").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("H1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   ActiveWindow.ScrollRow = 2  
   ActiveWindow.ScrollRow = 3  
   ActiveWindow.ScrollRow = 4  
   ActiveWindow.ScrollRow = 5  
   ActiveWindow.ScrollRow = 6  
   ActiveWindow.ScrollRow = 7  
   ActiveWindow.ScrollRow = 8  
   ActiveWindow.ScrollRow = 9  
   ActiveWindow.ScrollRow = 10  
   ActiveWindow.ScrollRow = 11  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 13  
   ActiveWindow.ScrollRow = 14  
   ActiveWindow.ScrollRow = 15  
   Range("P26:X26").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=9  
   Range("P41:X41").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   ActiveWindow.LargeScroll ToRight:=1  
   ActiveWindow.ScrollColumn = 11  
   ActiveWindow.ScrollColumn = 10  
   ActiveWindow.ScrollColumn = 9  
   ActiveWindow.ScrollColumn = 8  
   ActiveWindow.ScrollColumn = 7  
   ActiveWindow.ScrollColumn = 6  
   ActiveWindow.ScrollColumn = 5  
   ActiveWindow.ScrollColumn = 4  
   ActiveWindow.ScrollColumn = 3  
   ActiveWindow.ScrollColumn = 2  
   ActiveWindow.ScrollColumn = 1  
   Sheets("расписка").Select  
   ActiveWindow.ScrollRow = 23  
   ActiveWindow.ScrollRow = 22  
   ActiveWindow.ScrollRow = 20  
   ActiveWindow.ScrollRow = 19  
   ActiveWindow.ScrollRow = 18  
   ActiveWindow.ScrollRow = 17  
   ActiveWindow.ScrollRow = 16  
   ActiveWindow.ScrollRow = 15  
   ActiveWindow.ScrollRow = 14  
   ActiveWindow.ScrollRow = 13  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 11  
   ActiveWindow.ScrollRow = 10  
   ActiveWindow.ScrollRow = 9  
   ActiveWindow.ScrollRow = 8  
   ActiveWindow.ScrollRow = 7  
   ActiveWindow.ScrollRow = 6  
   ActiveWindow.ScrollRow = 5  
   ActiveWindow.ScrollRow = 4  
   ActiveWindow.ScrollRow = 3  
   ActiveWindow.ScrollRow = 2  
   ActiveWindow.ScrollRow = 1  
   ActiveWindow.ScrollRow = 2  
   ActiveWindow.ScrollRow = 3  
   ActiveWindow.ScrollRow = 4  
   ActiveWindow.ScrollRow = 5  
   ActiveWindow.ScrollRow = 6  
   ActiveWindow.ScrollRow = 7  
   ActiveWindow.ScrollRow = 8  
   ActiveWindow.ScrollRow = 9  
   ActiveWindow.ScrollRow = 10  
   ActiveWindow.ScrollRow = 11  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 13  
   ActiveWindow.ScrollRow = 14  
   ActiveWindow.ScrollRow = 15  
   ActiveWindow.ScrollRow = 16  
   ActiveWindow.ScrollRow = 17  
   ActiveWindow.ScrollRow = 18  
   ActiveWindow.ScrollRow = 19  
   ActiveWindow.ScrollRow = 20  
   ActiveWindow.ScrollRow = 21  
   ActiveWindow.ScrollRow = 22  
   ActiveWindow.ScrollRow = 23  
   ActiveWindow.ScrollRow = 24  
   ActiveWindow.ScrollRow = 25  
   ActiveWindow.ScrollRow = 26  
   ActiveWindow.ScrollRow = 27  
   ActiveWindow.ScrollRow = 28  
   ActiveWindow.ScrollRow = 29  
   ActiveWindow.ScrollRow = 30  
   ActiveWindow.ScrollRow = 31  
   ActiveWindow.ScrollRow = 32  
   ActiveWindow.ScrollRow = 33  
   ActiveWindow.ScrollRow = 34  
   ActiveWindow.ScrollRow = 35  
   ActiveWindow.ScrollRow = 36  
   ActiveWindow.ScrollRow = 37  
   ActiveWindow.ScrollRow = 38  
   ActiveWindow.ScrollRow = 39  
   ActiveWindow.ScrollRow = 40  
   ActiveWindow.ScrollRow = 41  
   ActiveWindow.ScrollRow = 42  
   ActiveWindow.ScrollRow = 43  
   ActiveWindow.ScrollRow = 44  
   ActiveWindow.ScrollRow = 45  
   ActiveWindow.ScrollRow = 44  
   ActiveWindow.ScrollRow = 43  
   ActiveWindow.ScrollRow = 42  
   ActiveWindow.ScrollRow = 41  
   ActiveWindow.ScrollRow = 40  
   ActiveWindow.ScrollRow = 39  
   ActiveWindow.ScrollRow = 38  
   ActiveWindow.ScrollRow = 37  
   ActiveWindow.ScrollRow = 36  
   ActiveWindow.ScrollRow = 34  
   ActiveWindow.ScrollRow = 33  
   ActiveWindow.ScrollRow = 31  
   ActiveWindow.ScrollRow = 30  
   ActiveWindow.ScrollRow = 28  
   ActiveWindow.ScrollRow = 26  
   ActiveWindow.ScrollRow = 22  
   ActiveWindow.ScrollRow = 20  
   ActiveWindow.ScrollRow = 18  
   ActiveWindow.ScrollRow = 16  
   ActiveWindow.ScrollRow = 15  
   ActiveWindow.ScrollRow = 14  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 11  
   ActiveWindow.ScrollRow = 10  
   ActiveWindow.ScrollRow = 9  
   ActiveWindow.ScrollRow = 8  
   ActiveWindow.ScrollRow = 7  
   ActiveWindow.ScrollRow = 6  
   ActiveWindow.ScrollRow = 5  
   ActiveWindow.ScrollRow = 4  
   ActiveWindow.ScrollRow = 3  
   ActiveWindow.ScrollRow = 2  
   ActiveWindow.ScrollRow = 1  
End Sub  
 
ЗАТЕМ НУЖНО ГОТОВЫЙ ДОКУМЕНТ ОТПРАВИТЬ НА ПЕЧАТЬ,    
И ПО НОВОЙ - ВЫДЕЛИТЬ СТРОКУ НИЖЕ ,ЗАПУСТИТЬ ЭТОТ МАКРОС,ОТПРАВИТЬ НА ПЕЧАТЬ.  
и т.д. ПОРЯДКА 1000РАЗ  
 
ЗАРАНЕЕ БЛАГОДАРЕН
 
Поиск на сайте - есть. Вариант решения в примерах есть. На форуме - выкладывали решение.  
Посмотрите может подойдет. Обсуждение по ветке почитать.
 
Как-то не был готов к такому "листингу".  
Не увидел у Вас печати. Или печатаем вручную после проверки?.  
Совет на будущее: при записи макрорекордером старайтесь делать только минимум действий, тогда мусора меньше запишется (типа ActiveWindow.ScrollColumn = 1).  
В начало пишем:  
Set actv=ActiveCell  
Далее    
Range("A1").Select заменяем на actv.Select  
Range("B1").Select заменяем на actv.Offset(0,1).Select  
Range("C1").Select заменяем на actv.Offset(0,2).Select  
и т.д.  
Выделяем первую ячейку нужной строки и запускаем.
 
Не вкурил:) а Range("AE57:AI57").Select на что менять?  
Попробую поподорбнее:  
В книге три листа  
1 "Оперативный анализ налоговых о"  
2 "расписка"  
3 "Лист 2"  
 
записал макрос №1:  
с первого листа выделенная строка копируется на третий лист, и уже оттуду нужные данные копируются в лист "расписка" в соответствующие ячейки.  
 
Потом Макросом №5 хотел зациклить этот процесс с распечаткой на каждой расписке. Но при воспроизведении этого макроса он на первом листе переходит не на следущую ячейку а на записанную в макросе (в листинге - с А5 на А6).  
Подскажите, пожалуйста, как грамотно зациклить выполнение Макроса №1 с распечаткой каждой расписки, чтобы он отработал все строки от текущей и до конца таблицы?  
Заранее спасибо.  
""Листинг"":)   :  
Sub Макрос1()  
'  
' Макрос1 Макрос  
' Макрос записан 22.05.2008 (GEG)  
'  
' Сочетание клавиш: Ctrl+я  
'  
   Selection.Copy  
   Sheets("Лист2").Select  
   Rows("1:1").Select  
   ActiveSheet.Paste  
   Range("A1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("AE8:AL8").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("C1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("H10:M10").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("D1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("O9:AQ9").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("E1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   ActiveWindow.SmallScroll Down:=12  
   Range("AF35:AH35").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("Лист2").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("AF35:AH35").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("F1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("O33:X33").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   Range("G1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   ActiveWindow.SmallScroll Down:=-18  
   Range("P2:AN2").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   ActiveWindow.SmallScroll Down:=-6  
   Range("I1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("P4:AP4").Select  
   ActiveSheet.Paste  
   Sheets("Лист2").Select  
   ActiveWindow.ScrollColumn = 2  
   ActiveWindow.ScrollColumn = 3  
   ActiveWindow.ScrollColumn = 4  
   ActiveWindow.ScrollColumn = 5  
   Range("H1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("P26:X26").Select  
   ActiveSheet.Paste  
   ActiveWindow.SmallScroll Down:=0  
   Sheets("Лист2").Select  
   ActiveWindow.SmallScroll Down:=-12  
   ActiveWindow.ScrollColumn = 4  
   ActiveWindow.ScrollColumn = 3  
   ActiveWindow.ScrollColumn = 2  
   ActiveWindow.ScrollColumn = 1  
   Range("B1").Select  
   Application.CutCopyMode = False  
   Selection.Copy  
   Sheets("расписка").Select  
   Range("T10:Y10").Select  
   ActiveSheet.Paste  
End Sub  
Sub Макрос5()  
'  
' Макрос5 Макрос  
' Макрос записан 22.05.2008 (GEG)  
'  
' Сочетание клавиш: Ctrl+ч  
'  
   Application.Run "'Копия недоимка ВСЯ2.xls'!Макрос1"  
   Application.CutCopyMode = False  
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  
   Sheets("Оперативный анализ налоговых о").Select  
   Range("A5").Select  
   Range(Selection, Selection.End(xlToRight)).Select  
   Range(Selection, Selection.End(xlToRight)).Select  
   Application.Run "'Копия недоимка ВСЯ2.xls'!Макрос1"  
   Application.CutCopyMode = False  
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  
   Sheets("Оперативный анализ налоговых о").Select  
   Range("A6").Select  
   Range(Selection, Selection.End(xlToRight)).Select  
   Range(Selection, Selection.End(xlToRight)).Select  
End Sub
Страницы: 1
Читают тему
Loading...