none
Executar macro em planilhas especifícas RRS feed

  • Pergunta

  • Olá boa noite,

    Gostaria de uma macro que fizesse um Loop e rodasse em todas as planilhas menos nas Plan1, Plan2, Plan3, Plan4, Plan10.

    Call Macro1  'esta macro que utilizo mas não pode rodar em todas.

    Obrigado!

    quarta-feira, 13 de agosto de 2014 22:39

Respostas

  • Você tem que qualificar o objeto range a entrar os dados, caso contrário, os dados serão entrados na céula ativa da planlilha ativa!

    Sub pMain()
      Dim ws As Excel.Worksheet
      For Each ws In ThisWorkbook.Worksheets
        Select Case ws.Name
          Case "Plan1", "Plan2", "Plan3", "Plan4", "Plan10" 'nestas planilhas não alterar
          Case Else
            Macro1 ws
        End Select
      Next ws
    End Sub
    
    Sub Macro1(ws As Excel.Worksheet) 'exemplo
        ws.Range("A1").FormulaR1C1 = "Jesus Mudou a Minha Vida"
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta miguelinho70 sexta-feira, 15 de agosto de 2014 02:12
    quinta-feira, 14 de agosto de 2014 22:29
    Moderador

Todas as Respostas

  • Sub pMain()
      Dim ws As Excel.Worksheet
      
      For Each ws In ThisWorkbook.Worksheets
        Select Case ws.Name
          Case "Plan1", "Plan2", "Plan3", "Plan4", "Plan10"
          Case Else
            'código aqui para processar em outras planilhas.
        End Select
      Next ws
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta miguelinho70 quarta-feira, 13 de agosto de 2014 23:34
    • Não Marcado como Resposta miguelinho70 quinta-feira, 14 de agosto de 2014 13:18
    quarta-feira, 13 de agosto de 2014 22:47
    Moderador
  • Resolvido.

    Obrigado Felipe

    • Editado miguelinho70 quarta-feira, 13 de agosto de 2014 23:36
    quarta-feira, 13 de agosto de 2014 23:35
  • Me enganei a macro não fez as alterações em todas as planilhas somente na planilha selecionada.

    Para entender melhor, gostaria que a macro inserisse em todas as planilhas menos (NÃO) nas Pln1, Pln2, Pln3, Pln4, Pln10.

    Sub pMain()
      Dim ws As Excel.Worksheet
      For Each ws In ThisWorkbook.Worksheets
        Select Case ws.Name
          Case "Plan1", "Plan2", "Plan3", "Plan4", "Plan10" 'nestas planilhas não alterar
          Case Else
            Call Macro1
        End Select
      Next ws
    End Sub
    Sub Macro1()'exemplo
        Range("G5").Select
        ActiveCell.FormulaR1C1 = "Jesus Mudou a Minha Vida"
    End Sub


    • Editado miguelinho70 quinta-feira, 14 de agosto de 2014 13:24
    quinta-feira, 14 de agosto de 2014 13:22
  • Você tem que qualificar o objeto range a entrar os dados, caso contrário, os dados serão entrados na céula ativa da planlilha ativa!

    Sub pMain()
      Dim ws As Excel.Worksheet
      For Each ws In ThisWorkbook.Worksheets
        Select Case ws.Name
          Case "Plan1", "Plan2", "Plan3", "Plan4", "Plan10" 'nestas planilhas não alterar
          Case Else
            Macro1 ws
        End Select
      Next ws
    End Sub
    
    Sub Macro1(ws As Excel.Worksheet) 'exemplo
        ws.Range("A1").FormulaR1C1 = "Jesus Mudou a Minha Vida"
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta miguelinho70 sexta-feira, 15 de agosto de 2014 02:12
    quinta-feira, 14 de agosto de 2014 22:29
    Moderador
  • Isso meu amigo não sabia deste detalhe, serviu para mim e mais leitores deste site.

    Obrigado Felipe mais uma vez.

    sexta-feira, 15 de agosto de 2014 02:20