Note: The other languages of the website are Google-translated. Back to English
Log in  \/ 
x
or
x
Inscreva-se  \/ 
x

or

Como executar a macro com base no valor selecionado da lista suspensa no Excel?

Executar macros clicando no botão de comando é uma tarefa comum no Excel, mas, você já tentou executar os códigos de macro com base no valor que é selecionado na lista suspensa? Isso significa que, ao escolher um item da lista suspensa, a macro específica será acionada de uma vez. Este artigo apresentará um código útil para você resolver esse trabalho.

Executar macro com base no valor selecionado da lista suspensa com código VBA


seta azul bolha direita Executar macro com base no valor selecionado da lista suspensa com código VBA

Não há uma maneira direta de terminar esta tarefa, mas o seguinte código VBA pode ajudá-lo, faça o seguinte:

1. Em primeiro lugar, crie uma lista suspensa conforme necessário, consulte a captura de tela:

doc executar macro no menu suspenso 1

2. Em seguida, clique com o botão direito na guia da planilha que contém o menu suspenso que deseja usar e escolha Ver código a partir do menu de contexto, e no aberto Microsoft Visual Basic para aplicativos janela, copie e cole o seguinte código no módulo em branco:

Código VBA: execute a macro com base no valor selecionado na lista suspensa:

Private Sub Worksheet_Change(ByVal Target As Range)
	If Not Intersect(Target, Range("E1")) Is Nothing Then
	    Select Case Range("E1")
	        Case "Insert Blank rows": Macro1
	        Case "Hide All Sheets": Macro2
            Case "Convert to Date": Macro3
	    End Select
	End If
	End Sub

doc executar macro no menu suspenso 2

Importante: No código acima, E1 é a célula que contém a lista suspensa, altere os nomes das macros e os valores da lista suspensa de acordo com sua necessidade.

3. E então salve e feche esta janela de código, agora, quando você selecionar o item Inserir linhas em branco na lista suspensa, Macro1 será disparado e assim por diante ...


Artigos relacionados:

Como executar a macro quando o valor da célula muda no Excel?

Como executar macro com base no valor da célula no Excel?

Como executar macro automaticamente antes de imprimir no Excel?

Como executar macro clicando em hiperlinks no Excel?

Como executar macro quando a planilha é selecionada em uma pasta de trabalho?


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Super Formula Bar (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
officetab bottom
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Syed Salman · 8 days ago


    FIRST CODE WORKING PERFECTLY
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D1")) Is Nothing Then
    Select Case Range("D1")
             Case "0.5": Half
             Case "1": One
             Case "1.25": OneTwentyFive
    End Select
    End If
    End Sub

    SECOND CODE NOT WORKING (plz correct the below)
    Private Sub Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2")) Is Nothing Then
    Select Case Range("D2")
             Case "9.53": ninepointfivethree
    End Select
    End If
    End Sub
  • To post as a guest, your comment is unpublished.
    Ivan · 3 years ago
    Good morning. Would you be able to do Macro from drop down menu for next: To run macro and save separated sheets for each item from Dropdown menu? In your case should be looking like this:
    1. You run macro and then you have separated sheet with values for "Insert blank rows" saved in designated folder
    2. Separated sheet with values for " Hide all sheets:" saved in designated folder
    3. Separated sheet with values for " Convert to date" saved in designated folder.
    4. Macro is done now


    Mainly i am able do set all of this except that macro automatically change selection from drop down menu ?


    Thanks


    Ivan
  • To post as a guest, your comment is unpublished.
    nuria · 3 years ago
    Hola!

    Al aplicarlo me sale un error de compilación: La declaración del procedimiento no coincide con la descripción del evento o el procedimiento que tiene el mismo nombre. Que quiere decir eso? que debo cambiar/arreglar? Gracias
  • To post as a guest, your comment is unpublished.
    fi · 3 years ago
    Is there a way to use VBA code to do this in Access? Thanks
  • To post as a guest, your comment is unpublished.
    Diego · 3 years ago
    efectivamente funciona pero quiero aplicarlo en varias celdas, que variable debo cambiar?