на листе экселя кнопка для отправки на печать |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
6 / 7 / 1 Регистрация: 05.11.2013 Сообщений: 305 |
|
1 |
|
Макрос.Вывод на печать04.06.2020, 09:47. Показов 5729. Ответов 8
Книга содержит листы : Январь,Февраль…Декабрь.
0 |
малоболт 1143 / 442 / 193 Регистрация: 30.01.2020 Сообщений: 1,095 |
|
04.06.2020, 10:05 |
2 |
Как заставить машину распечатать листы с Марта по Август ? Если ручками — то просто выделить нужные листы. И потом, на странице настроек печати выбрать: Изображения
0 |
6 / 7 / 1 Регистрация: 05.11.2013 Сообщений: 305 |
|
04.06.2020, 10:46 [ТС] |
3 |
Или нужно именно макросом решить?
Макрос.Вывод на печать Настоящая тема — это упрощенный вариант моего вопроса.
0 |
Punkt5 малоболт 1143 / 442 / 193 Регистрация: 30.01.2020 Сообщений: 1,095 |
||||||||
04.06.2020, 10:52 |
4 |
|||||||
Мне нужен макрос который будет отправлять документ на принтер Ну, через запись макросов получается так:
Соответственно Array со списком названий листов можно сделать свой и заранее
Это поможет?
0 |
6 / 7 / 1 Регистрация: 05.11.2013 Сообщений: 305 |
|
04.06.2020, 11:13 [ТС] |
5 |
Это поможет? Поможет или нет — не знаю . Сейчас нет возможности проверить . а нельзя ли как-то запись укоротить ?
0 |
Punkt5 малоболт 1143 / 442 / 193 Регистрация: 30.01.2020 Сообщений: 1,095 |
||||
04.06.2020, 11:54 |
6 |
|||
а нельзя ли как-то запись укоротить ? В моей практике не встречалось
Или заполнять массив в цикле. Но обязательно массив. Так, чтобы как с ячейками — указать начальный и конечный номер листа через двоеточие — не видел.
1 |
6 / 7 / 1 Регистрация: 05.11.2013 Сообщений: 305 |
|
04.06.2020, 12:11 [ТС] |
7 |
а какой будет код, если надо распечатать все кроме 2-го и 8-го листа ?
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||||||
04.06.2020, 17:58 |
8 |
|||||||
0mega, Всё равно на печать листы будут выводить по очереди, стало быть, можно замутить ещё и так :
А выкинуть 2 и 8, так :
P.S. Конечно, если печатать нужно всё время разные листы, то имеет смысл создать UserForm с ListBox.
1 |
6 / 7 / 1 Регистрация: 05.11.2013 Сообщений: 305 |
|
05.06.2020, 08:33 [ТС] |
9 |
pashulka спасибо
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
05.06.2020, 08:33 |
9 |
Добрый день!
Есть кнопка, которая запускает следующий макрос:
Sub SaveThisBook3()
Dim FolderName2 As Range
Set FolderName2 = ThisWorkbook.Worksheets(«Лист1»).Range(«G1»)
Dim PathToSave As String, FolderName As String, FellPathToSave As String
Dim fs As Object
PathToSave = «P:2010» ‘<————— Здесь укажи путь к папке в которую нужно сохранить книгу
FolderName = FolderName2 ‘<————— Здесь задай название папки
FellPathToSave = PathToSave & FolderName & «»
Set fs = CreateObject(«Scripting.FileSystemObject»)
If Not fs.FolderExists(FellPathToSave) Then
fs.CreateFolder (FellPathToSave)
End If
Application.ThisWorkbook.SaveAs FellPathToSave & «Приход » & Left(Now, 10) & «.xlsx»
End Sub
Этот макрос привязан к кнопке, при нажатию на которую создается в указанном каталоге новая папка, имя которой берется из ячейки и туда же, под тем же именем, сохраняется сам файл.
Мне нужно добавить в этот макрос печать — чтобы после того, как папка создалась, файл распечатался. В крайнем случае, чтобы автоматом вызывался диалог печати.
Спасибо.
В Excel есть такая замечательная штука как Запись макроса (Сервис -> Макрос -> …). Выполнив после начала записи определённые действия, например такие как печать, сохранение, добавление листов, данных в ячейки… да чего угодно, можно получить готовенький код макроса.
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
Спасибо!
Попробовал записать, вот что получилось:
Sub mAcros1()
‘
‘ mAcros1 Макрос
‘ mm
‘
‘
Application.Run Range()
Application.ActivePrinter = «\192.168.1.45PRINTERCC245 (Ne02:)»
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
«\192.168.1.45PRINTERCC245 (Ne02:)», Collate:=True
End Sub
Выдает ошибку:
Copmpile error: argument not optimal
Во-первых, свою процедуру нельзя называть Range() (это зарезервированное имя Excel), а, во-вторых, программный запуск другого макроса должен выглядеть так:
Application.Run "Книга1!My_Range"
Или что за действие там у тебя первой строкой перед печатью должно происходить?
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
Я тыкаю на кнопку, которая создает каталог и сохраняет туда файл, а потом вызываю диалог печати и печатаю содерждимое файла.
Предлагаю поменять последовательность с такой:
Sub Макрос1()
'Нажатие кнопки
'Печать
End Sub
Private Sub CommandButton1_Click()
'Сохранение файла
End Sub
на такую:
Sub Макрос1()
'Раньше здесь был код, записанный макрорекордером.
'Теперь же, когда мы узнали как нужно автоматически запускать на печать,
'код более не требуется
End Sub
Private Sub CommandButton1_Click()
'Сохранение файла
'Печать
End Sub
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
C VBA сталкиваюсь первый раз! создал кнопку прописал макрос:
Sub Кнопка2_Щелчок()
Dim FolderName2 As Range
Set FolderName2 = ThisWorkbook.Worksheets(«НСС»).Range(«Y1»)
Dim PathToSave As String, FolderName As String, FellPathToSave As String
Dim fs As Object
PathToSave = «D:2010»
FolderName = FolderName2
FellPathToSave = PathToSave & FolderName & «»
Set fs = CreateObject(«Scripting.FileSystemObject»)
If Not fs.FolderExists(FellPathToSave) Then
fs.CreateFolder (FellPathToSave)
End If
Application.ThisWorkbook.SaveAs FellPathToSave & «VedomostNSS_» & Left(Now, 10) & «.xlsm»
End Sub
все отлично работает, но мне необходимо чтобы к имени файла добавлялось не просто дата а еще и время. В Y1 у меня стоит функция =СЕГОДНЯ(), если меняю на =TDATA(), то выдает ошибку. В чем причина
Цитата: Gery от 29.07.2010, 14:29
но мне необходимо чтобы к имени файла добавлялось не просто дата а еще и время.
Чтобы вместе со временем нужно просто заменить эту строку:
Application.ThisWorkbook.SaveAs FellPathToSave & "VedomostNSS_" & Left(Now, 10) & ".xlsm"
На такую:
Application.ThisWorkbook.SaveAs FellPathToSave & "VedomostNSS_" & Now & ".xlsm"
Но лучше заменять двоеточия и точки на что-нибудь другое. Например так:
Application.ThisWorkbook.SaveAs FellPathToSave & "VedomostNSS_" & Format(Now, "DD_MM_YYYY HH_MM_SS") & ".xlsm"
P.S. Хотя и для только даты можно было написать короче:
Application.ThisWorkbook.SaveAs FellPathToSave & "VedomostNSS_" & Date & ".xlsm"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453
Спасибо, Prist! ТЫ МЕГА МОЗГ!!