Seleção múltipla em lista suspensa no Excel
Recentemente recebemos uma pergunta de um de nossos leitores a respeito da possibilidade fazer seleção múltipla em lista suspensa no Excel. Como sabemos, o Excel permite que o usuário selecione apenas um único item por vez em uma lista suspensa. Contudo, se você tiver trabalhando com um formulário pode haver a necessidade de selecionar várias itens em uma lista suspensa.
Abaixo é mostrado um exemplo de como funciona a seleção múltipla em lista suspensa no Excel. E se você quer aprender a criar este recurso, continue acompanhando o passo a passo a seguir:
Já está interessado(a) no que vem por aí? Então compartilhe com sua rede de amigos para que mais pessoas possam aprender a criar o recurso de seleção múltipla em lista suspensa no Excel:
Criando a lista suspensa
O primeiro passo para ter uma lista suspensa no Excel com o recurso de seleção múltipla é simplesmente criar a lista suspensa.
Não entraremos em detalhes a respeito de como criar a lista suspensa, mas você pode conferir o artigo Validação de Dados por Lista Suspensa, onde mostramos o passo a passo para criá-la.
Uma vez que já você tenha criado a sua lista suspensa no Excel, ela terá o funcionamento semelhante ao exemplo mostrado abaixo:
Adicionando seleção múltipla em lista suspensa
Agora que já temos a nossa lista suspensa criada no Excel, precisamos habilita-la para permitir várias seleções. E para isso precisamos adicionar um código VBA.
Para isso, basta acessar a guia Desenvolvedor > Visual Basic e adicionar o código abaixo na planilha que você está trabalhando.
Note: Se você não tiver a guia Desenvolvedor habilitada em seu Excel, confira o artigo: Habilitando a Guia Desenvolvedor no Excel
Private Sub Worksheet_Change(ByVal Target As Range) ' To Select Multiple Items from a Drop Down List in Excel Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$C$1" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Créditos do código: Trump Excel
Importante: Onde está destacado em negrito (If Target.Address = “$C$1” Then) refere-se a célula onde está a lista suspensa que criamos neste exemplo. Caso sua lista esteja em outra célula, basta alterar essa referência.
Você também pode optar por deixar o recurso de seleção múltipla em lista suspensa em toda a coluna. Para isso, basta alterar o código destacado em negrito para: (If Target.Column = 3 Then). Neste exemplo estamos informando que toda a coluna C irá ter o recurso de seleção múltipla.
Ao finalizar, não se esqueça de salvar a sua planilha no formato “Planilha Habilitada para Macros”. XLSM