Como criar um menu suspenso de pares Nome / Valor do Excel

1

Eu tenho as seguintes colunas

A     | B
Name  | Value
One   | 1
Two   | 2
Three | 3

Na coluna C, desejo ter uma lista suspensa de validação que mostre a concatenação de Nome e Valor (por exemplo, Um-1, Dois-2, etc.). Quando o usuário faz uma seleção (ou seja, dois - dois), somente os dados na coluna Valor preenchem a célula (ou seja, 2).

Como faço isso?

    
por user529463 04.12.2015 / 00:31

1 resposta

1

Com dados como:

ColoqueaseguintemacroVBAemummódulopadrãoeexecute-a:

SubDV_Maker()DimiAsLongDimsAsStringFori=2To4s=s&"," & Cells(i, 1) & " - " & Cells(i, 2)
   Next i
   s = Mid(s, 2)

   With Range("C2:C4").Validation
   .Delete
           .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:=s
           .IgnoreBlank = True
           .InCellDropdown = True
           .InputTitle = ""
           .ErrorTitle = ""
           .InputMessage = ""
           .ErrorMessage = ""
           .ShowInput = True
           .ShowError = False
   End With
End Sub

Ele configurará a Validação de dados para as células C2 , C3 e C4 . Em seguida, coloque esta macro de evento na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rng As Range
   Set rng = Range("S2:C4")

   If Intersect(Target, rng) Is Nothing Then Exit Sub
   Application.EnableEvents = False
      Target.Value = Split(Target.Value, " - ")(1)
   Application.EnableEvents = True
End Sub

A macro do evento removerá o texto da célula depois que os dados forem inseridos.

    
por 04.12.2015 / 13:27