Vis lige hvordan du "fylder" din combobox med værdier..? Det er altid nemmere at komme med en løsning, når man kan se noget kode, så løsningen ligner det du arbejder med og ikke bruger helt andre fremgangsmåder...
Private Sub UserForm_Activate() Dim col As New Collection Dim intRow As Integer intRow = 2 On Error Resume Next Do Until IsEmpty(Cells(intRow, 1)) col.Add Cells(intRow, 1), Cells(intRow, 1) If Err = 0 Then userform1.AddItem Cells(intRow, 1) Else Err.Clear End If intRow = intRow + 1 Loop On Error GoTo 0 userform1.ListIndex = 0 End Sub
sådan fylder jeg combobox1...
i combobox1 står der måske æbler
jeg vil så kun have de data fra kolonne b som i kolonne A hedder æbler og så have det vist i combobox 2...
og nej ikke helt... og jo... hvis der står æbler i Combobox1 skal den smide kolonne B i Combobox2 - men kun hvor kolonneA=combobox1 (hvor der lige nu står Æbler....)
Følgende løsning virker, hvis der i celle A1 - A10 står Æble, Banan eller Pærer i celle B1 - B10 står Et eller andet, fx. Ingrid Marie I combobox1 Står "Æbler", "Pærer" og "Bananer"
Private Sub ComboBox1_Change() Dim Række as Integer UserForm1.ComboBox2.Clear Select Case ComboBox1.List(ComboBox1.ListIndex)
Case "Æbler" For Række = 1 To 10 If Trim(Cells(Række, 1).Value) = "Æble" Then UserForm1.ComboBox2.AddItem Cells(Række, 2).Value End If Next Række
Case "Pærer" For Række = 1 To 10 If Trim(Cells(Række, 1).Value) = "Pære" Then UserForm1.ComboBox2.AddItem Cells(Række, 2).Value End If Next Række
Case "Bananer" For Række = 1 To 10 If Trim(Cells(Række, 1).Value) = "Banan" Then UserForm1.ComboBox2.AddItem Cells(Række, 2).Value End If Next Række
End Select If UserForm1.ComboBox2.ListCount >= 0 Then UserForm1.ComboBox2.ListIndex = 0 End Sub
Der kikkes kun i de første 10 rækker - det kan du jo bare ændre. Jeg kan sende dig regnearket, så du kan se koden i praksis, hvis du ikke gider selv kopiere det - giv din email :o)
Dim Række As Integer UserForm1.ComboBox2.Clear Dim col1 As New Collection Dim intRow As Integer intRow = 2 On Error Resume Next Do Until IsEmpty(Cells(intRow, 1)) If Cells(intRow, 1) = ComboBox1.Text Then col1.Add Cells(intRow, 2), Cells(intRow, 2) If Err = 0 Then ComboBox2.AddItem Cells(intRow, 2) Else Err.Clear End If End If intRow = intRow + 1
Loop On Error GoTo 0 ComboBox2.ListIndex = 0
End Sub
Private Sub UserForm_Activate() Dim col As New Collection Dim intRow As Integer intRow = 2 On Error Resume Next Do Until IsEmpty(Cells(intRow, 1)) col.Add Cells(intRow, 1), Cells(intRow, 1) If Err = 0 Then ComboBox1.AddItem Cells(intRow, 1) Else Err.Clear End If intRow = intRow + 1 Loop On Error GoTo 0 ComboBox1.ListIndex = 0 End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.