Страницы: 1
RSS
Макрос для печати, Не очень удобный существующий макрос для печати
 
Здравствуйте. Имеется файл и необходимо отправлять его на печать при помощи макроса. В самой книге максрос уже имеется и работает он так: Если в ячейке напротив названия листа, стоит цифра 1, то этот лист печатается. Это не очень удобно, потому что каждых лист печатается отдельно и к тому же нужно 3 копии. Так вот подскажите пожалуйста как сделать так, чтобы печатались сразу все листы напротив которых стоит 1 и этот документ был в трех копиях
Ниже прикладываю пример, это лишь маленький кусочек исходного файла.
Заранее спасибо большое
 
Код
Sub qq()
    Dim cl As Range
    With Workbooks("èñïîëíèòåëüíàÿ").Sheets("Äàíûå")
        For Each cl In .Range(.Cells(6, "K"), .Cells(.Rows.Count, "K").End(xlUp))
            If cl.Next = 1 Then
                .PrintOut Copies:=3
            End If
        Next
    End With
End Sub
 
Здравствуйте, спасибо большое за ответ. Подскажите пожалуйста, правильно ли я делаю. Было бы хорошо если бы вы помогли внедрить макрос в файл. Прикладываю скриншот, что пишет макрос. Я не очень в этом разбираюсь, но очень нужна помощь
 
Александр Лапидас, ругается на имя книги  (немного изменил код RAN (зеленый комментарий - строка как в коде выше))
Код
Sub qq()
    Dim cl As Range
    With ThisWorkbook.Sheets("Даные") ' закооментировать эту строку и раскомментировать следующую (коммнтарий - ' в начале строки)
'    With Workbooks("ИмяКниги").Worksheets("Данные")
        For Each cl In .Range(.Cells(6, "K"), .Cells(.Rows.Count, "K").End(xlUp))
            If cl.Next = 1 Then
                .PrintOut Copies:=3
            End If
        Next
    End With
End Sub
 
Спасибо, все работает. Возникает следующая проблема: Если обратите внимание, то в файле самый первый лист называется "данные" и при печати он не нужен. Что нужно изменить в макросе, чтобы начинать печать с листа "Лист1"
 
Александр Лапидас, добавил комментарий к коду (см. ниже зеленым)

Код
Sub qq()
    Dim cl As Range
    With 
ThisWorkbook.Sheets("Даные") ' "данные" поменять на "Лист1"
раскомментировать следующую (коммнтарий - ' в начале строки)
'    With Workbooks("ИмяКниги").Worksheets("Данные") "данные" поменять на "Лист1"
        For Each cl In .Range(.Cells(6, "K"), .Cells(.Rows.Count, "K").End(xlUp))
            If cl.Next = 1 Then
                .PrintOut Copies:=3
            End If
        Next
    End With
End Sub
Страницы: 1
Наверх