none
MACRO PARA EXECUTAR EM TODAS AS PLANILHAS DO ARQUIVO RRS feed

  • Pergunta

  • Bem pessoa, pesquisei muito sobre o assunto aqui no fórum para não fazer uma pergunta repetida, entretanto as respostas que achei não funcionaram comigo.

    Tenho um determinado procedimento e preciso que ele seja executado em todas as sheets do arquivo.

    Achei uma pergunta semelhante aqui:

    https://social.msdn.microsoft.com/Forums/pt-BR/61ff4f52-a61f-451c-a057-c99cb399b0b1/executar-macro-em-planilhas-especifcas?forum=vbapt

    Mas a resposta do Felipe não funcionou no meu código... qualifiquei todos os objetos Range, mesmo assim não funciona.

    Desde já obrigado.

    quarta-feira, 8 de abril de 2015 20:37

Respostas

  • Ola,

    Sub Ação()
    For i = 1 To Sheets.Count
          Sheets(i).Range("A2") = "1"
          Next i
    End Sub

    Será isto?

    • Marcado como Resposta JonnyFelix quinta-feira, 9 de abril de 2015 17:48
    quarta-feira, 8 de abril de 2015 23:03
  • miguelinho, seu código funcionou perfeitamente pra mim, só alterei pra ficar assim

    For i = 1 To Sheets.Count
          Sheets(i).Select
          
          'PROCEDIMENTO'
    
       Next i
       End Sub
       
       

    Natan, seu código só funcionou na planilha que está ativa  na hora que executo a macro. Quando passa pra próxima nada acontece, mas muito obrigado também pela ajuda

    quinta-feira, 9 de abril de 2015 17:47

Todas as Respostas

  • Ola,

    Sub Ação()
    For i = 1 To Sheets.Count
          Sheets(i).Range("A2") = "1"
          Next i
    End Sub

    Será isto?

    • Marcado como Resposta JonnyFelix quinta-feira, 9 de abril de 2015 17:48
    quarta-feira, 8 de abril de 2015 23:03
  • ajudando também:

    você pode criar um método pedindo o nome da guia como parâmetro.

    Sub main(strPlanilha As String)
    
      Dim p As Worksheet
      Set p = ThisWorkbook.Sheets(strPlanilha)
      
      p.Range("A1").Value = "teste"
      
    End Sub

    aí você chama assim:

    main "Plan1"

    main "Plan2"



    Natan

    quinta-feira, 9 de abril de 2015 00:31
  • miguelinho, seu código funcionou perfeitamente pra mim, só alterei pra ficar assim

    For i = 1 To Sheets.Count
          Sheets(i).Select
          
          'PROCEDIMENTO'
    
       Next i
       End Sub
       
       

    Natan, seu código só funcionou na planilha que está ativa  na hora que executo a macro. Quando passa pra próxima nada acontece, mas muito obrigado também pela ajuda

    quinta-feira, 9 de abril de 2015 17:47
  • Bom dia Senhores.

    Eu estou com uma duvida você poderia me ajudar, preciso criar uma macro que copie alguns itens de uma tabela e eliminasse os duplicados e também preciso somar as quantidades desses itens.

    E também na aba 1 chamada de geral, preciso colocar 2 botões que executem as macros nas demais planilhas menos na primeira que é a geral, isso para automatizar o nosso processo de lista de materiais.

    A minha macro já está da seguinte forma, preciso completa-la com os dois itens que falei acima.

    Sub Filtro_Avancado() ' ' Filtro_Avancado Macro ' Realiza filtro avançado. ' ' Atalho do teclado: Ctrl+f '     Range("'Geral'!A4:'Geral'!J1000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _         "A5:J6"), CopyToRange:=Range("A9:J9"), Unique:=False End Sub Sub Filtro_Avancado_2_Criterios() ' ' Filtro_Avancado_2_Criterios Macro ' Realiza filtro avanção usando duas linhas de critérios. ' ' Atalho do teclado: Ctrl+k '     Range("'Geral'!A4:'Geral'!J1000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _         "A5:J7"), CopyToRange:=Range("A9:J9"), Unique:=False End Sub Sub Limpar_Dados() ' ' Limpar_Dados Macro ' Limpa os dados da área de Critérios e da área de Extração. ' ' Atalho do teclado: Ctrl+d '     Range("A10:J1000").Select     Selection.ClearContents     Range("A10:J10").Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("J5").Select      End Sub

     

    Thank’s

    sexta-feira, 6 de abril de 2018 13:29