Oi pessoal,
Descrição do problema: Tenho um listBox "Filters" e 3 outros ListBoxes contendo valores únicos de 3 colunas em 3 planilhas diferentes. Gostaria de selecionar um ou mais filtros no listBox "Filters" e usá-lo para marcar caixas de seleção onde quer que o texto do filtro ocorra em 3 outros ListBoxes, então deve funcionar como "contains" -> veja a simulação na captura de tela. Sei que o ListBox tem a propriedade Selected, mas não tenho ideia de como usá-lo para marcar outras caixas de seleção.
-----------UserForm1------------
Private Sub UserForm_Activate()
Dim r As Range
With Worksheets("Carriers")
Set r = .Range("A2", .Range("A1000").End(xlUp))
Me.lstB_Carriers.RowSource = "Carriers!" & r.Address
End With
End Sub
--------------Module1---------------
Sub SentUpdate()
RemoveDuplicatesNLOB
Call Module2.RemoveDuplicatesNLIB
Call Module3.RemoveDuplicatesHUOB
UserForm1.Show
End Sub
Sub RemoveDuplicatesNLOB()
On Error Resume Next
Sheet2.ShowAllData
On Error GoTo 0
Dim AllCells As Range, Cell As Range
Dim NoDupes As Collection, NoDupesSorted As Collection
Dim i As Long, j As Long
Dim Item As Variant
Set NoDupes = New Collection
Set AllCells = Sheet2.Range("D5:D" & Sheet2.Range("D10000").End(xlUp).Row)
On Error Resume Next
For Each Cell In AllCells
NoDupes.Add Cell.Value, CStr(Cell.Value)
Next Cell
On Error GoTo 0
With UserForm1
.lbl_totalLSP_NLOB.Caption = "Total Items: " & AllCells.count
End With
Set NoDupesSorted = New Collection
NoDupesSorted.Add NoDupes(1), CStr(NoDupes(1))
For i = 2 To NoDupes.count
For j = 1 To NoDupesSorted.count
If NoDupes(i) < NoDupesSorted(j) Then
NoDupesSorted.Add NoDupes(i), CStr(NoDupes(i)), j
Exit For
End If
Next j
Next i
For Each Item In NoDupesSorted
UserForm1.lstB_NLOB.AddItem Item
Next Item
End Sub
Veja como poderia ficar:
Meus dados fictícios: