Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen

ComboBox einlesen | Herbers Excel-Forum


Betrifft: ComboBox einlesen von: Leitz Gerd
Geschrieben am: 05.02.2012 20:11:17

Hallo!

Hab jetzt noch ein Problem und bitte um Hilfe!

Ich lese mit folgendem Code Daten in eine ComboBox2 ein abhängig von der Auswahl in ComboBox1.

Dim loZeile As Long
With Worksheets("Liste")
For loZeile = 2 To IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp) _
.Row, .Rows.Count)
If .Cells(loZeile, 19) = ComboBox1 Then ComboBox2.AddItem .Cells(loZeile, 20)
Next loZeile
End With

Mein Problem is nun daß in Spalte T die gleichen Einträge in mehrern Zeilen vorkommen, und mit diesem Code weden dann alle angezeigt, wenn ich also 5 mal "ALLE" und 3 mal "GRUPPE1" stehen habe dann wird in der ComboBox auch 5x "ALLE" und 3 mal "GRUPPE1" angzeigt.
Wie kann ich das filtern, daß in der ComboBox "ALLE" od. "GRUPPE1" ..... jeweils nur ein mal angzeigt wird.

Mit besten Dank
Gruß
Gerd

  

Betrifft: suche mal nach "Dictionary" ... von: Matthias L
Geschrieben am: 05.02.2012 20:25:49

Hallo Gerd

Hier ein Link zu einem meiner Beiträge
https://www.herber.de/forum/archiv/1228to1232/t1228638.htm#1228638

Gruß Matthias


  

Betrifft: AW: suche mal nach "Dictionary" ... von: Leitz Gerd
Geschrieben am: 06.02.2012 09:20:29

Hallo!

Habe in den Link mein Problem eingebaut, stelle es ins Netz.

https://www.herber.de/bbs/user/78755.xls

Kenne mich zu wenig aus um den Vorschlag von Matthias in mein VBA zu integrieren.

Gruß
Gerd


  

Betrifft: AW: ComboBox einlesen von: Rudi Maintaire
Geschrieben am: 06.02.2012 11:30:31

Hallo,
Zähl die Einträge doch einfach.

If .Cells(loZeile, 19) = ComboBox1 And _
  Application.CountIf(.Range(.Cells(2, 20), .Cells(loZeile, 20)), .Cells(loZeile, 20)) = 1 _
  Then ComboBox2.AddItem .Cells(loZeile, 20)
Gruß
Rudi


  

Betrifft: AW: ComboBox einlesen von: Leitz Gerd
Geschrieben am: 06.02.2012 12:33:35

Hallo!

Danke für die Hilfe!
Habs eingbaut in mein Beispiel, funktioniert aber nur bedingt. Jetzt verschluckt es manche Marken, Es werden nicht alle Marken angezeigt. Bei Gruppe3 wird gar nix angzeigt obwohl Fiat drinn ist.

https://www.herber.de/bbs/user/78758.xls


Gruß
Gerd


  

Betrifft: AW: ComboBox einlesen von: Rudi Maintaire
Geschrieben am: 06.02.2012 15:51:40

Hallo,
so:

Private Sub CheckBox1_Change()
  Dim lxRow1 As Long, lLRow1 As Long
  Dim objGruppe1 As Object
  
  If CheckBox1 = True Then
    Set objGruppe1 = CreateObject("Scripting.Dictionary")
    With Sheets("Tabelle1")
      lLRow1 = .Range("M" & ActiveSheet.Rows.Count).End(xlUp).Row
      For lxRow1 = 2 To lLRow1
        objGruppe1(.Cells(lxRow1, 13).Value) = 0
      Next lxRow1
    End With
    If objGruppe1.Count > 0 Then ComboBox1.List = objGruppe1.Keys
    Set objGruppe1 = Nothing
    ComboBox1.ListIndex = -1
  Else
      ComboBox1.Clear
  End If
End Sub

Private Sub CheckBox2_Change()
  Dim lxRow1 As Long, lLRow1 As Long
  Dim objGruppe1 As Object
  
  If CheckBox1 = True Then
    If CheckBox2 = True Then
      Set objGruppe1 = CreateObject("Scripting.Dictionary")
            
      With Sheets("Tabelle1")
        lLRow1 = .Range("N" & ActiveSheet.Rows.Count).End(xlUp).Row
        For lxRow1 = 2 To lLRow1
          If .Cells(lxRow1, 13) = ComboBox1 Then
            objGruppe1(.Cells(lxRow1, 14).Value) = 0
          End If
        Next lxRow1
      End With
      If objGruppe1.Count > 0 Then ComboBox2.List = objGruppe1.Keys
      Set objGruppe1 = Nothing
      ComboBox1.ListIndex = -1
    Else
      ComboBox2.Clear
    End If
  End If
End Sub

Gruß
Rudi


  

Betrifft: AW: ComboBox einlesen von: Leitz Gerd
Geschrieben am: 06.02.2012 16:33:13

Hallo!

Ich möchte mich sehr herzlich bedanken, hätte das nie hinbekommen!
Funktioniert super!


Mit besten Dank und Gruß
Gerd


Beiträge aus den Excel-Beispielen zum Thema "ComboBox einlesen"