Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Combobox mit mehreren Spalten vergleichen
22.11.2019 12:42:29
Stefan
Hallo zusamen,
ich habe ein kleines Problem.
Ich hab eine Combobox in der Produkte stehen (ich nenn sie einfach mal 1,2,3,4,5,...)
Es soll von dieser Combobox eine Listbox gefüllt werden.
Meine Tabelle ist so aufgebaut:
A: Datum
B: Kunde
D-Z: Produkte
Jetzt möchte ich, dass wenn ich in der Combobox1 das Produkt 2 auswähle, alle Kunden angezeigt werden, die dieses Produkt gekauft haben.
 With ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "2,5cm;2cm"
With ThisWorkbook.Worksheets("verkauf") ' den Tabellenblattnamen ggf. anpassen!
For lZeile = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row
If ComboBox1.Text = .Range("b" & lZeile).Value Then
ListBox1.AddItem " "
ListBox1.List(iLiBo, 0) = .Range("A" & lZeile).Value
ListBox1.List(iLiBo, 1) = .Range("b" & lZeile).Value
iLiBo = iLiBo + 1
End If
Next lZeile
End With
End With
Dieser Code funktioniert soweit, dass wenn in Spalte C das Produkt steht, dann wird der Kunde und das Datum angezeigt.
Wie müsste ich den Code erweitern, dass es auf für Spalte D-Z funktioniert?
Grüße
Stefan Hiemer
ps. wenn eine Beispieldatei benötigt wird, lade ich gern eine hoch.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:01:20
Nepumuk
Hallo Stefan,
teste mal:
Dim objCell As Range
Dim strFirstAddress As String
With ListBox1
    .Clear
    .ColumnCount = 2
    .ColumnWidths = "2,5cm;2cm"
    With ThisWorkbook.Worksheets("verkauf") ' den Tabellenblattnamen ggf. anpassen!
        Set objCell = .Columns("D:Z").Find(What:=ComboBox1.Text, _
            LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
        If Not objCell Is Nothing Then
            strFirstAddress = objCell.Address
            Do
                ListBox1.AddItem " "
                ListBox1.List(iLiBo, 0) = .Range("A" & lZeile).Value
                ListBox1.List(iLiBo, 1) = .Range("b" & lZeile).Value
                iLiBo = iLiBo + 1
                Set objCell = .Columns("D:Z").FindNext(After:=objCell)
            Loop Until objCell.Address = strFirstAddress
        End If
    End With
End With

Gruß
Nepumuk
Anzeige
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:07:52
Nepumuk
Hallo Stefan,
da ist noch ein Fehler drin:
Dim objCell As Range
Dim strFirstAddress As String
With ListBox1
    .Clear
    .ColumnCount = 2
    .ColumnWidths = "2,5cm;2cm"
    With ThisWorkbook.Worksheets("verkauf") ' den Tabellenblattnamen ggf. anpassen!
        Set objCell = .Columns("D:Z").Find(What:=ComboBox1.Text, _
            LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
        If Not objCell Is Nothing Then
            strFirstAddress = objCell.Address
            Do
                ListBox1.AddItem
                ListBox1.List(iLiBo, 0) = .Range("A" & objCell.Row).Value
                ListBox1.List(iLiBo, 1) = .Range("b" & objCell.Row).Value
                iLiBo = iLiBo + 1
                Set objCell = .Columns("D:Z").FindNext(After:=objCell)
            Loop Until objCell.Address = strFirstAddress
        End If
    End With
End With

Gruß
Nepumuk
Anzeige
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:15:28
Stefan
Hallo Nepumuk,
folgende drei Codezeilen werden sofort nach dem einfügen rot:
If Not objCell Is Nothing Then
Loop Until objCell.Address = strFirstAddress
        End if

und beim Versuch den Vorgang zu starten kommt der Fehler "Variable nicht definiert".
Gruß
Stefan
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:18:08
Nepumuk
Hallo Stefan,
lösch mal alles vor diesen Zeilen.
Gruß
Nepumuk
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:30:38
Stefan
Hallo Nepumuk,
manchmal bin ich ein bisschen ein schussel *g*
die Fehlermeldung mit der Variable kommt aber immer noch, sobald die Aktion gestartet wird.
Ich hab jetzt einmal die Datei mit hochgeladen, so gehts glaub einfacher.
Es geht um die UserForm_Anzeige.
https://www.herber.de/bbs/user/133375.xlsm
Danke schonmal bis hier und gruß
Stefan
Anzeige
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:52:52
Nepumuk
Hallo Stefan,
da läuft bei dir beim kopieren etwas schief. Hast du ein Programm laufen welches im Clipboard rumpfuscht?
Ich lade dir die Mappe lieber hoch: https://www.herber.de/bbs/user/133376.xlsm
Gruß
Nepumuk
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 15:08:28
Stefan
Hallo Nepumuk,
herzlichen dank jetzt läufts, aber gute Frage, welches Programm da reinpfuscht.
Danke nochmal und schönes Wochenende
Stefan
AW: Combobox mit mehreren Spalten vergleichen
22.11.2019 13:04:31
Piet
Hallo
du sprichst die Zellen mit Range an, benutze Cells, damit kannst du viel eleganter Programmieren!
ListBox1.List(iLiBo, 1) = .Cells(lZeile, 2).Value - entspricht - .Range("b" & lZeile).Value
Bei Cells gilt: .Cells(z, s) - zuerst z=Zeile, dann s=Spalte als Zahl oder Buchstabe, beides möglich!
Cells(1,1) ist somit Range("A1"), Cells(1,2) ist Range("B1") usw.
Mit diesem Wissen kannst du alls Spalten selbst in die ListBox hochladen. Stimmts?
mfg Piet
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige