Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос на отправку на печать по условию в ячейке - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос на отправку на печать по условию в ячейке (Макросы/Sub)
Макрос на отправку на печать по условию в ячейке
mikaelw Дата: Пятница, 10.04.2020, 01:56 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
Доброго времени суток!

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

Из файла печатается огромное кол-во документов.

Помогите сделать 2 кнопки на листе "Документ"

"Печать"
"Печать сразу на принтер"

Которая будет отправлять страницу на печать, со следующим условием:

Если значение ячейки К4

К4 <= 31 печатаем страницы с 1 по 1
К4 в диапазоне 32 - 72 печатаем страницы с 1 по 2
К4 в диапазоне 73 - 113 печатаем страницы с 1 по 3
каждый следующие 41 добавляет страницу

Заранее спаибо!
К сообщению приложен файл: 4649559.xlsx(177.2 Kb)
 
Ответить
СообщениеДоброго времени суток!

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

Из файла печатается огромное кол-во документов.

Помогите сделать 2 кнопки на листе "Документ"

"Печать"
"Печать сразу на принтер"

Которая будет отправлять страницу на печать, со следующим условием:

Если значение ячейки К4

К4 <= 31 печатаем страницы с 1 по 1
К4 в диапазоне 32 - 72 печатаем страницы с 1 по 2
К4 в диапазоне 73 - 113 печатаем страницы с 1 по 3
каждый следующие 41 добавляет страницу

Заранее спаибо!

Автор - mikaelw
Дата добавления - 10.04.2020 в 01:56
Апострофф Дата: Пятница, 10.04.2020, 06:59 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 267
Репутация: 82 ±
Замечаний: 0% ±

Excel 1997
mikaelw, здравствуйте!
Как положить кнопку на лист и назначить ей макрос вы знаете, надеюсь.
А вот примерный код для второй кнопки (с первой проблем нету?)
[vba]
Код
Sub КНОПА2_ЩЁЛК()
ActiveSheet.PrintOut 1, ([K4] + 50) \ 41
End Sub
[/vba]


Сообщение отредактировал Апострофф - Пятница, 10.04.2020, 07:01
 
Ответить
Сообщениеmikaelw, здравствуйте!
Как положить кнопку на лист и назначить ей макрос вы знаете, надеюсь.
А вот примерный код для второй кнопки (с первой проблем нету?)
[vba]
Код
Sub КНОПА2_ЩЁЛК()
ActiveSheet.PrintOut 1, ([K4] + 50) \ 41
End Sub
[/vba]

Автор - Апострофф
Дата добавления - 10.04.2020 в 06:59
RAN Дата: Пятница, 10.04.2020, 08:29 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5335
Репутация: 1065 ±
Замечаний: 0% ±

2010
А если учесть, что
со следующим условием:

несколько не соответствует действительности, то код будет такой :)
[vba]
Код
Sub мяу()
    Dim i&, k&
    With ActiveSheet
        k = 1
        If .HPageBreaks.Count Then
            For i = 1 To .HPageBreaks.Count
                If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10 Then k = k + 1
            Next
        End If
        .PrintOut 1, k
    End With
End Sub
[/vba]

Или такой
[vba]
Код
Sub мяв()
    Dim lr&
    With ActiveSheet
        lr = .Columns(1).Find("*", , xlValues, , xlByRows, xlPrevious).Row
        .PageSetup.PrintArea = "A1:K" & lr
        .PrintOut
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 10.04.2020, 10:28
 
Ответить
СообщениеА если учесть, что
со следующим условием:

несколько не соответствует действительности, то код будет такой :)
[vba]
Код
Sub мяу()
    Dim i&, k&
    With ActiveSheet
        k = 1
        If .HPageBreaks.Count Then
            For i = 1 To .HPageBreaks.Count
                If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10 Then k = k + 1
            Next
        End If
        .PrintOut 1, k
    End With
End Sub
[/vba]

Или такой
[vba]
Код
Sub мяв()
    Dim lr&
    With ActiveSheet
        lr = .Columns(1).Find("*", , xlValues, , xlByRows, xlPrevious).Row
        .PageSetup.PrintArea = "A1:K" & lr
        .PrintOut
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 10.04.2020 в 08:29
mikaelw Дата: Пятница, 10.04.2020, 09:48 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
я именно кнопки делать и не умею... ((((
 
Ответить
Сообщениея именно кнопки делать и не умею... ((((

Автор - mikaelw
Дата добавления - 10.04.2020 в 09:48
Апострофф Дата: Пятница, 10.04.2020, 10:07 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 267
Репутация: 82 ±
Замечаний: 0% ±

Excel 1997
mikaelw, а поиск не помогает? Одна из первых найденных ссылок очень поднимет ваш уровень умения
https://www.excel-vba.ru/chto-um....a-liste
 
Ответить
Сообщениеmikaelw, а поиск не помогает? Одна из первых найденных ссылок очень поднимет ваш уровень умения
https://www.excel-vba.ru/chto-um....a-liste

Автор - Апострофф
Дата добавления - 10.04.2020 в 10:07
mikaelw Дата: Пятница, 10.04.2020, 15:44 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
сколько не соответствует действительности, то код будет такой


Спасибо!

А можно еще код с открытием диалогового окна печати с переданными в него настройками.
 
Ответить
Сообщение
сколько не соответствует действительности, то код будет такой


Спасибо!

А можно еще код с открытием диалогового окна печати с переданными в него настройками.

Автор - mikaelw
Дата добавления - 10.04.2020 в 15:44
mikaelw Дата: Пятница, 10.04.2020, 15:45 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
Цитата Апострофф, 10.04.2020 в 10:07, в сообщении № 5 ()
а поиск не помогает?


Спасибо.
Ссылка очень помогла.

А то в старом екселе еще помню, а в новом уже нет.
 
Ответить
Сообщение
Цитата Апострофф, 10.04.2020 в 10:07, в сообщении № 5 ()
а поиск не помогает?


Спасибо.
Ссылка очень помогла.

А то в старом екселе еще помню, а в новом уже нет.

Автор - mikaelw
Дата добавления - 10.04.2020 в 15:45
RAN Дата: Пятница, 10.04.2020, 18:53 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5335
Репутация: 1065 ±
Замечаний: 0% ±

2010
код с открытием диалогового окна печати

можно
[vba]
Код
Application.Dialogs(xlDialogPrint).Show
[/vba]
с переданными в него настройками

нельзя.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
код с открытием диалогового окна печати

можно
[vba]
Код
Application.Dialogs(xlDialogPrint).Show
[/vba]
с переданными в него настройками

нельзя.

Автор - RAN
Дата добавления - 10.04.2020 в 18:53
mikaelw Дата: Пятница, 10.04.2020, 20:07 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
нельзя.


Можно.
 
Ответить
Сообщение
нельзя.


Можно.

Автор - mikaelw
Дата добавления - 10.04.2020 в 20:07
RAN Дата: Пятница, 10.04.2020, 20:15 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5335
Репутация: 1065 ±
Замечаний: 0% ±

2010
Если знаете, что можно, зачем спрашиваете?
Лучше покажите, как можно.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЕсли знаете, что можно, зачем спрашиваете?
Лучше покажите, как можно.

Автор - RAN
Дата добавления - 10.04.2020 в 20:15
mikaelw Дата: Пятница, 10.04.2020, 20:21 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
Лучше покажите, как можно.


Коряво, но так работает....

[vba]
Код
Sub Принтер()

Dim i&, k&
With ActiveSheet
k = 1
If .HPageBreaks.Count Then
For i = 1 To .HPageBreaks.Count
If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10 Then k = k + 1
Next
End If
Application.Dialogs(xlDialogPrint).Show 1, 1, k
End With

End Sub
[/vba]
P.S. Как правильно оформить сообщение, чтоб текст макроса был правильно виден?


Сообщение отредактировал mikaelw - Пятница, 10.04.2020, 21:14
 
Ответить
Сообщение
Лучше покажите, как можно.


Коряво, но так работает....

[vba]
Код
Sub Принтер()

Dim i&, k&
With ActiveSheet
k = 1
If .HPageBreaks.Count Then
For i = 1 To .HPageBreaks.Count
If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10 Then k = k + 1
Next
End If
Application.Dialogs(xlDialogPrint).Show 1, 1, k
End With

End Sub
[/vba]
P.S. Как правильно оформить сообщение, чтоб текст макроса был правильно виден?

Автор - mikaelw
Дата добавления - 10.04.2020 в 20:21
Pelena Дата: Пятница, 10.04.2020, 21:02 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16785
Репутация: 3621 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Как правильно оформить сообщение
в режиме редактирования выделить код и нажать кнопку # на панели инструментов


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
Как правильно оформить сообщение
в режиме редактирования выделить код и нажать кнопку # на панели инструментов

Автор - Pelena
Дата добавления - 10.04.2020 в 21:02
mikaelw Дата: Пятница, 10.04.2020, 21:14 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
в режиме редактирования выделить код и нажать кнопку # на панели инструментов


Спасибо...
 
Ответить
Сообщение
в режиме редактирования выделить код и нажать кнопку # на панели инструментов


Спасибо...

Автор - mikaelw
Дата добавления - 10.04.2020 в 21:14
RAN Дата: Пятница, 10.04.2020, 22:21 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5335
Репутация: 1065 ±
Замечаний: 0% ±

2010
.Show 1, 1, k

Спасибо за информацию.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
.Show 1, 1, k

Спасибо за информацию.

Автор - RAN
Дата добавления - 10.04.2020 в 22:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос на отправку на печать по условию в ячейке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

jooble Яндекс цитирования
© 2010-2020 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!