Iniciar macro quando uma condição em uma tabela do Excel for atendida

Índice

Você pode usar um truque para iniciar uma macro assim que uma função IF em sua planilha do Excel fornecer um determinado resultado

Uma macro deve ser executada em uma tabela do Excel assim que uma função da tabela IF retornar um valor lógico. Caso contrário, um texto deve ser simplesmente exibido.

Você resolve este problema com uma função VBA definida pelo usuário. Você está trabalhando com um procedimento Function em vez de um procedimento Sub.

Se já houver uma macro que você deseja iniciar com uma função IF, você pode copiar o código para o procedimento Function ou chamar o procedimento Sub a partir dele.

Uma macro com o nome “Startmacro” é usada como exemplo e só abre uma caixa de diálogo simples. Siga esses passos:

  1. Primeiro inicie o editor VBA. Você pode fazer isso em todas as versões do Excel usando a combinação de teclas ALT F11.
  2. Selecione o comando INSERT - MODULE para inserir uma nova folha de módulo.

Insira os seguintes comandos VBA:

Função pública Startmakro () como string
Anúncio de chamada
Macro de início = "Iniciado."
Função final
Sub display ()
MsgBox "Macro iniciada"
End Sub

O código do programa consiste em duas partes separadas. O primeiro fragmento representa a nova função da tabela STARTMAKRO. O segundo fragmento é usado para exibir o texto "A macro foi iniciada".

Após inserir os comandos, chame o comando CLOSE AND RETURN TO MICROSOFT EXCEL no menu FILE do editor VBA. Isso o traz de volta à sua mesa.

Como incluir a macro em uma função IF

Para ver se a macro está funcionando corretamente, insira a seguinte função na célula A2 de uma tabela:

= SE (A1 = 1; startmakro (); "Não iniciado.")

Se você inserir o número 1 na célula A1, a macro será chamada pela função definida pelo usuário. A janela de mensagem aparece conforme mostrado na figura a seguir:

Depois, há o texto "Iniciado". Na cela. A função de planilha definida pelo usuário retornou esse resultado ao Excel.

Se a célula A1 tiver um conteúdo diferente de 1, a macro não será iniciada. Nesse caso, a função IF define o texto "Não iniciado". como resultado

O caminho apresentado é uma prática não recomendada pela Microsoft. As janelas de mensagens não devem ser exibidas nas funções definidas pelo usuário.

Não é necessário separar as duas macros START MACRO e DISPLAY. Você também pode dispensar o comando CALL na macro VBA e incluir os comandos para a sub-rotina diretamente na sub-rotina FUNCTION.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave