Página 1 de 1

VBA Ocultar/Mostar imagens

Enviado: 12 Mar 2021 às 16:56
por MariLima
Olá pessoal!

Tenho um arquivo com várias planilhas e a logo da empresa em cada uma delas. Preciso da logo para enviar o arquivo em pdf porém a imagem não deve sair na impressão e me toma muito tempo ir de aba em aba ocultando as imagens quando vou imprimir.
Achei as seguintes macros na internet, porém só funcionam para a planilha ativa e não consigo fazê-las rodar na pasta de trabalho. Podem me ajudar?

OCULTAR:
Sub HideAllObjects()
Dim ob As Shape
For Each ob In ActiveSheet.Shapes
ob.Visible = False
Next
End Sub

MOSTRAR:
Sub ShowAllObjects()
Dim ob As Shape
For Each ob In ActiveSheet.Shapes
ob.Visible = True
Next
End Sub

Re: VBA Ocultar/Mostar imagens

Enviado: 15 Mar 2021 às 13:26
por AfonsoMira
Penso que seja mais fácil ir na formatação da imagem, em propriedades e desseleccionar a opção Imprimir Objeto.
E pronto apenas precisa fazer isso uma vez e a imagem não vai ser impressa!

Re: VBA Ocultar/Mostar imagens

Enviado: 16 Mar 2021 às 09:11
por MariLima
Estou fazendo isso, o problema é que quando salvo o arquivo em pdf, a imagem também não aparece e preciso que ela saia no pdf mas não saia na impressão. Como são muitas planilhas, fica bem trabalhoso fazer isso de uma por uma rs

Re: VBA Ocultar/Mostar imagens

Enviado: 16 Mar 2021 às 09:50
por osvaldomp
#
O código abaixo imprime TODAS as planilhas do arquivo.
Se você quiser imprimir apenas uma ou algumas então retorne e informe os nomes das planilhas a serem impressas para ajustes no código.
Código: Selecionar todos
Sub ImprimeTodasAsPlanilhasSemLogo()
 Dim ws As Worksheet, ob As Shape
  For Each ws In Worksheets
   For Each ob In ws.Shapes
    ob.Visible = False
   Next ob
   'coloque aqui o seu código para imprimir ~~~> exemplo: ws.PrintOut
   For Each ob In ws.Shapes
    ob.Visible = True
   Next ob
  Next ws
End Sub

Re: VBA Ocultar/Mostar imagens

Enviado: 16 Mar 2021 às 10:29
por MariLima
Nossa, é isso mesmo!
Como seria para imprimir apenas algumas planilhas? As que vão ser impressas variam, mas as que não vão ser impressas são: Cadastro, Resumo e Dados.

Re: VBA Ocultar/Mostar imagens

Enviado: 16 Mar 2021 às 10:35
por osvaldomp
Código: Selecionar todos
Sub ImprimeTodasAsPlanilhasSemLogo()
 Dim ws As Worksheet, ob As Shape
  For Each ws In Worksheets
   If ws.Name <> "Cadastro" And ws.Name <> "Resumo" And ws.Name <> "Dados" Then
    For Each ob In ws.Shapes
     ob.Visible = False
    Next ob
    'coloque aqui o seu código para imprimir ~~~> exemplo: ws.PrintOut
    For Each ob In ws.Shapes
     ob.Visible = True
    Next ob
   End If
  Next ws
End Sub

Re: VBA Ocultar/Mostar imagens

Enviado: 16 Mar 2021 às 11:10
por MariLima
Funcionou perfeitamente! Muito obrigada!!! ;) :D :D :D