
Tenho uma tabela no Excel onde posso selecionar vários itens de uma lista suspensa em uma célula.
Agora, usando minha macro, tenho que escolher todas as opções separadamente e elas são adicionadas a uma célula, uma por uma.
Existe a possibilidade de escrever a macro que adiciona caixas de seleção à lista suspensa, para que eu possa marcar os itens que desejo adicionar e eles serão adicionados simultaneamente?
Responder1
Sim, você pode adicionar uma caixa de listagem de formulário e permitir seleções múltiplas.Verifique aquipara suporte MS.
VBA - verifiqueeste tópico stackoverflow
Responder2
Ok, usei este código para o Listbox:
Dim lngItem As Long
Const strSep = ", " 'delimiter
Private Sub UserForm_Initialize()
With ListBox1
.RowSource = "=Sheet1!A2:A12"
For lngItem = 0 To ListBox1.ListCount - 1
.Selected(lngItem) = InStr(1, strSep & ActiveCell.Value & strSep, strSep & .List(lngItem, 0) & strSep)
Next lngItem
End With
End Sub
Private Sub CommandButton1_Click()
Dim strItems As String
With ListBox1
For lngItem = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lngItem) Then
strItems = strItems & strSep & ListBox1.List(lngItem, 0)
End If
Next lngItem
End With
With ActiveCell
.NumberFormat = "@"
.Value = Replace(strItems, strSep, "", 1, 1)
End With
Unload Me
End Sub
e este para seleção de colunas:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Or Target.Row = 1 Then Exit Sub
UserForm1.Show
Cancel = True
End Sub
Funciona muito bem, mas gostaria de mudar uma coisa.
No momento a caixa de listagem aparece após clicar duas vezes na célula, existe a possibilidade de fazer com apenas um clique? Também pode ser alterado para que a caixa de listagem sempre apareça abaixo da célula selecionada?
Responder3
Se você olhar a imagem em anexo, saberá que é assim que se parece a solução perfeita. Usando caixas de seleção dentro de caixas de listagem.
Baixe o código: http://www.vlsiip.com/exceltips.html