Notifications
Clear all

Imprimir alterando área de impressão

3 Posts
2 Usuários
0 Reactions
911 Visualizações
(@gubirro)
Posts: 8
Active Member
Topic starter
 

Prezados,
Estou usando essa macro abaixo para imprimir uma Área definida. Está funcionando perfeitamente.
Porém preciso que o número relacionado à última linha, o 106 seja sempre alterado pelo valor encontrado em uma determinada célula da planilha (A célula $AA$7).

Ou seja, sempre que o valor na célula $AA$7 se alterar, ele alteraria o valor da linha da coluna H e por consequência alteraria a área de impressão.

Alguém pode me ajudar como fazer isso?

Sub Imprimir()
ActiveSheet.PageSetup.PrintArea = "B4:H106"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
 
Postado : 22/05/2018 4:17 pm
(@boobymcgee)
Posts: 84
Trusted Member
 

Veja se é isso.

 
Postado : 23/05/2018 8:27 am
(@gubirro)
Posts: 8
Active Member
Topic starter
 

Agradeço imensamente!
Deu tudo certo.

Apesar de não entender quase nada de VBA, pesquisei aqui e alterei a parte do FitToPagesTall e FitToPagesWide e consegui que imprimisse no número de paginas necessárias e não que fosse sempre em somente uma página.
Deste modo, reitero o agradecimento pela ajuda e disponho abaixo o código final utilizado, para facilitar outros membros que tenham a mesma dúvida.
A area de impressão ficou da célula B4 até a célula H(número disposto em AA7)

Sub Imprimir()

Dim Ulinha As Long
Dim k As Long
Dim W As Long
Dim y As Long

'Seleciona a área de impressão
k = 2 ' coluna "B"
W = 4 'linha "4"
y = 8 'coluna "H"

Ulinha = ActiveSheet.Range("AA7").Value ' linha informada na célula "AA7"

ActiveSheet.Range(Cells(W, k), Cells(Ulinha, y)).Select

      
' Define o modelo de impressão
    With ActiveSheet.PageSetup

        .PrintArea = Selection.Address

        .Orientation = 1

        .PaperSize = xlPaperA4
        
        .FitToPagesTall = False
        
        .FitToPagesWide = 1
        
        .Zoom = False
      
        .Order = xlDownThenOver

    End With
    
'Exibe a visualização da impressão
    Application.Dialogs(xlDialogPrintPreview).Show


    'ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

 
Postado : 23/05/2018 11:23 am