Notifications
Clear all

Como rodar Macro em varias planilhas

8 Posts
4 Usuários
0 Reactions
1,450 Visualizações
(@genison)
Posts: 0
New Member
Topic starter
 

Eu gostaria de saber como faço para que essa macro do tópico d link abaixo, não rode em uma guia específica. Eu vi como cria uma condição pra ocultar a guia, mas e uma condição pra não rodar na guia, e pular para a próxima?

viewtopic.php?f=10&t=8257&p=43807#p43807

Alguém me ajuda?

 
Postado : 16/08/2017 11:16 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Movi tua dúvida para um novo tópico.

Não poste em tópico dos outros, conforme as regras do fórum , sempre crie um novo tópico para as tuas dúvidas

Patropi - Moderador

 
Postado : 16/08/2017 3:46 pm
(@osvaldomp)
Posts: 857
Prominent Member
 
If sht.Name <> "Plan1" Then
 
Postado : 16/08/2017 7:28 pm
(@leandroxtr)
Posts: 0
New Member
 

Bom dia,
de uma forma mais detalhada, segue minha contribuição:

Dim wsheet as worksheet
Dim ws as worksheet
set wsheet = Sheets("Plan1")  'Planilha que não quero rodar o código


For each ws in worksheets
If ws.name <> wsheet.name Then
'[Coloque aqui o código que deseja executar em todas as planilhas]
End If
Next 

 
Postado : 17/08/2017 5:28 am
(@osvaldomp)
Posts: 857
Prominent Member
 

de uma forma mais detalhada, segue minha contribuição

If ws.Name <> wsheet.Name Then

 
Postado : 17/08/2017 5:54 am
(@leandroxtr)
Posts: 0
New Member
 

Obrigado

 
Postado : 17/08/2017 6:15 am
(@genison)
Posts: 0
New Member
Topic starter
 

Obrigado Osvaldomp e leandroxtr!

Não sei se é ignorância de minha parte, mas o código tá funcionando justamente como não deveria funcionar. Ele executa somente na guia que não deveria executar.

Ficou assim:

Sub ExecuteAll ()
Dim wsheet as worksheet
Dim ws as worksheet
set wsheet = Sheets("PAINEL GERENCIAL")  'Planilha que não quero rodar o código
For each ws in worksheets
If ws.Name <> wsheet.Name Then
Call PasteValues '[Coloque aqui o código que deseja executar em todas as planilhas]
End If
Next
End Sub

Qual o problema, sabem me dizer?

 
Postado : 18/08/2017 6:31 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Estranho o que você comentou, pois o código "PasteValues" roda em todas, menos na planilha "PAINEL GERENCIAL". Adicionei uma caixa de mensagem que deverá mostrar o nome de todas as planilhas (em lugar de chamar o PasteValues) do seu arquivo com exceção da "PAINEL GERENCIAL".

Sub ExecuteAll()
Dim wsheet As Worksheet
Dim ws As Worksheet
Set wsheet = Sheets("PAINEL GERENCIAL")  'Planilha que não quero rodar o código
For Each ws In Worksheets
If ws.Name <> wsheet.Name Then
MsgBox ws.Name 'Call PasteValues '[Coloque aqui o código que deseja executar em todas as planilhas]
End If
Next
End Sub

Abaixo o seu código simplificado.

Sub ExecuteAllV2()
 Dim ws As Worksheet
  For Each ws In Worksheets
   If ws.Name <> "PAINEL GERENCIAL" Then MsgBox ws.Name   'Call PasteValues '[Coloque aqui o código que deseja executar em todas as planilhas]
  Next
End Sub
 
Postado : 18/08/2017 7:58 am