Подозреваю, что сворачивание ленты тут должно остаться Просто нужно её разворачивать до отображения предварительного просмотра. А у автора процедура есть, но она нигде не используется. Правда проблемой потом будет снова свернуть ленту. Я пока повесил на событие selection_change.
Подозреваю, что сворачивание ленты тут должно остаться Просто нужно её разворачивать до отображения предварительного просмотра. А у автора процедура есть, но она нигде не используется. Правда проблемой потом будет снова свернуть ленту. Я пока повесил на событие selection_change.SkyPro
А я и не читал, что там внутри файла написано Короче. У автора просто макрос разворачивания ленты не был добавлен на кнопку. А селекшен чейнж можно и убрать )
А я и не читал, что там внутри файла написано Короче. У автора просто макрос разворачивания ленты не был добавлен на кнопку. А селекшен чейнж можно и убрать )SkyPro
skypro1111@gmail.com
Сообщение отредактировал SkyPro - Воскресенье, 10.11.2013, 16:21
Помогите заодно добить. Как убрать ошибку, если печатать нужно только выделенное. На выделенные две ячейки к примеру - не работает
[vba]
Код
ActiveSheet.Select Dim pA As Range Set pA = Selection If pA.Cells.Count = 1 Then Exit Sub ' pA.Select With ActiveSheet.PageSetup .PrintArea = Selection.Address .PaperSize = xlPaperA4 .CenterHorizontally = True .Orientation = xlLandscape .Zoom = PercentZoom(pA) End With enbl ActiveWindow.SelectedSheets.PrintPreview End Sub Public Function PercentZoom(pAr As Range) As Integer Dim i As Integer Dim j As Single With ActiveSheet For i = 1 To pAr.Columns.Count j = j + .Columns(i).Width Next End With PercentZoom = Int((690 / j) * 100) End Function
[/vba]
Помогите заодно добить. Как убрать ошибку, если печатать нужно только выделенное. На выделенные две ячейки к примеру - не работает
[vba]
Код
ActiveSheet.Select Dim pA As Range Set pA = Selection If pA.Cells.Count = 1 Then Exit Sub ' pA.Select With ActiveSheet.PageSetup .PrintArea = Selection.Address .PaperSize = xlPaperA4 .CenterHorizontally = True .Orientation = xlLandscape .Zoom = PercentZoom(pA) End With enbl ActiveWindow.SelectedSheets.PrintPreview End Sub Public Function PercentZoom(pAr As Range) As Integer Dim i As Integer Dim j As Single With ActiveSheet For i = 1 To pAr.Columns.Count j = j + .Columns(i).Width Next End With PercentZoom = Int((690 / j) * 100) End Function
Не разобрался)) еще актуально) к примеру для этого, или который оригинальный..
[vba]
Код
Sub test() Dim ans As String, rPrintArea As Range On Error Resume Next Application.DisplayAlerts = False Set rPrintArea = Application.InputBox(Prompt:="Use Mouse to select area to Print.", Title:="Select Print Area", Type:=8) On Error GoTo 0 Application.DisplayAlerts = True If rPrintArea Is Nothing Then Exit Sub ans = MsgBox(Prompt:="Yes to Print." & vbCrLf & "No to Preview." & vbCrLf & "Cancel To Abort", Buttons:=vbYesNoCancel, Title:="Print?") If ans = vbCancel Then Exit Sub If ans = vbYes Then rPrintArea.PrintOut Else rPrintArea.PrintOut Preview:=True, Collate:=True End If End Sub
[/vba]
Не разобрался)) еще актуально) к примеру для этого, или который оригинальный..
[vba]
Код
Sub test() Dim ans As String, rPrintArea As Range On Error Resume Next Application.DisplayAlerts = False Set rPrintArea = Application.InputBox(Prompt:="Use Mouse to select area to Print.", Title:="Select Print Area", Type:=8) On Error GoTo 0 Application.DisplayAlerts = True If rPrintArea Is Nothing Then Exit Sub ans = MsgBox(Prompt:="Yes to Print." & vbCrLf & "No to Preview." & vbCrLf & "Cancel To Abort", Buttons:=vbYesNoCancel, Title:="Print?") If ans = vbCancel Then Exit Sub If ans = vbYes Then rPrintArea.PrintOut Else rPrintArea.PrintOut Preview:=True, Collate:=True End If End Sub