Ir para conteúdo
Fórum Script Brasil
  • 0

Executa Macro Automaticamente


BMOTA

Pergunta

Estou tentando execultar a seguinte macro automaticamente mais não estou conseguindo.

macro

 

Private Sub Worksheet_Change(ByVal Target As Range)

        Application.EnableEvents = True

        If Not Intersect(Target, Range("H3")) Is Nothing Then

                Call CLASSIFICAÇÃOCALCULORS

        End If

        Application.EnableEvents = False

   

End Sub

 

Sub CLASSIFICAÇÃOCALCULORS()

 Range("B2:F55").Select

    ActiveWorkbook.Worksheets("CALCULO RS").Sort.SortFields.Clear

    ActiveWorkbook.Worksheets("CALCULO RS").Sort.SortFields.Add Key:=Range( _

        "E2:E55"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

        xlSortNormal

    ActiveWorkbook.Worksheets("CALCULO RS").Sort.SortFields.Add Key:=Range( _

        "F2:F55"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

        xlSortNormal

    With ActiveWorkbook.Worksheets("CALCULO RS").Sort

        .SetRange Range("B2:F55")

        .Header = xlGuess

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

    ActiveWindow.SmallScroll Down:=-15

End Sub

Eu criei uma macro gravada que foi essa CLASSIFICAÇÃOCALCULORS e coloquei o codigo para que ele fosse execultada assim que as celulas h3 ou h2 fosse alteradas, por formulas.

 

Editado por BMOTA
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Para que o evento seja acionado por alterações de valores com formulas, use o evento calculate.

Veja o exemplo:

Em um modulo padrão, declare as variaveis:

Public iniVal1 As Variant
Public iniVal2 As Variant

Em qualquer celula coloque uma formula, por exemplo: em B1: =A1+1
 

Private Sub Worksheet_Calculate()
	       If Range("H2").Value <> iniVal1 Or _
       Range("H3").Value <> iniVal2 Then
   
        Application.EnableEvents = True
	         Call CLASSIFICAÇÃOCALCULORS
         
        iniVal1 = Range("H2").Value
        iniVal2 = Range("H3").Value
        
        Application.EnableEvents = False
        
         End If
        
End Sub
	
Editado por Basole
*
Link para o comentário
Compartilhar em outros sites

  • 0
34 minutos atrás, Basole disse:

Para que o evento seja acionado por alterações de valores com formulas, use o evento calculate.

Veja o exemplo:

Em um modulo padrão, declare as variaveis:

Public iniVal1 As Variant
Public iniVal2 As Variant

Em qualquer celula coloque uma formula, por exemplo: em B1: =A1+1
 


Private Sub Worksheet_Calculate()
	       If Range("H2").Value <> iniVal1 Or _
       Range("H3").Value <> iniVal2 Then
   
        Application.EnableEvents = True
	         Call CLASSIFICAÇÃOCALCULORS
         
        iniVal1 = Range("H2").Value
        iniVal2 = Range("H3").Value
        
        Application.EnableEvents = False
        
         End If
        
End Sub
	

Bom dia, obrigado por responder

Porém não deu certo.

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...