Usuário com melhor resposta
Imprimir somente conteúdo preenchido em um Range

Pergunta
-
Olá, boa tarde.
Tenho curiosidades em VBA e peço desculpa por não poder contribuir ricamente com vocês.
Tenho um range de A1 a E550 mas nem todo este range está preenchido. Gostaria que pudessem me ajudar a encontrar uma maneira de fazer com que, com apenas um botão, eu possa imprimir no formato PDF o conteúdo preenchido.
Trata-se de uma planilha com a qual eu possa verificar uma gama de materiais, estado de conservação, responsável pela utilização, quantidade desse material e a natureza dele (metro, grama, litro...). Viabilizei este documento para facilitar o uso com um tablet com Windows 8/8.1 portando o Office 2013 instalado (meu caso), visando mobilidade.
Os códigos é puramente didático pra mim mas a aplicação é funcional. Afinal, quem não quer impressionar o chefe, destacando-se dos demais?
Segue código:
Sub Impressao()
Dim naoVazia As Integer
Worksheets("RESUMO").Select
naoVazia = ThisWorkbook.Worksheets("RESUMO").Range("E550").End(xlUp).Offset(0, 5).Row
Range("A1:E550").Select
Range("A1:E + naoVazia").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=FalseEnd Sub
Como cheguei a esta conclusão: Gravei uma macro de impressão e através de uma linha que verifica de baixo para cima uma célula vazia e tentei alterar a "ultima célula vazia de baixo para cima" como o limite da seleção da impressão. Mas falha.
Alguém poderia, por favor, me ajudar a desvendar este mistério?
Obrigado.
Respostas
-
Bem vindo ao fórum,
O operador de concatenação do VBA é o '&".
Além disso, variáveis não devem ficar entre aspas.
Range("A1:E" & naoVazia).Select
Isso foi o que peguei de momento.
Caso o erro persista, diga em qual linha acontece e qual a mensagem retornada.
Abs
- Marcado como Resposta Felipe S. Xavier terça-feira, 28 de julho de 2015 19:21
-
Para selecionar todas as células não vazias de um intervalo, você utiliza o método SpecialCells...
Range("A1:E1000").SpecialCells(xlCellTypeConstants).Select
Natan
- Marcado como Resposta Felipe S. Xavier terça-feira, 28 de julho de 2015 19:22
Todas as Respostas
-
Bem vindo ao fórum,
O operador de concatenação do VBA é o '&".
Além disso, variáveis não devem ficar entre aspas.
Range("A1:E" & naoVazia).Select
Isso foi o que peguei de momento.
Caso o erro persista, diga em qual linha acontece e qual a mensagem retornada.
Abs
- Marcado como Resposta Felipe S. Xavier terça-feira, 28 de julho de 2015 19:21
-
Para selecionar todas as células não vazias de um intervalo, você utiliza o método SpecialCells...
Range("A1:E1000").SpecialCells(xlCellTypeConstants).Select
Natan
- Marcado como Resposta Felipe S. Xavier terça-feira, 28 de julho de 2015 19:22