Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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
UserForm ListBox nach 2 Kriterien füllen
08.11.2020 15:05:30
Andreas
Hallo Excelfreunde,
Erst mal allen noch ein schönes Wochenende
Ich würde gern den unten aufgeführten Code noch etwas erweitern.
Folgendes: Der Code füllt mir in meiner UserForm die ListBox nach Auswahl des Kriteriums in der ComboBox51 (befindet sich auch in der UserForm)
Die Daten welche in die ListBox eingelesen werden sollen befinden sich im Tabellenblatt "Erfassung_Bearbeitung" in diesem Fall in Spalte "H"
Dieses Makro macht auch zuverlässig das was es machen soll. Nämlich durch Auswahl in der ComboBox gewälten Begriff im Tabellenblatt "Erfassung_Bearbeitung" suchen und gefundene Datensätze in die ListBox schreiben.
Ich möchte jetzt aber gern noch ein zweites Kriterium dazunehmen das mir per Auswahl aus der zweiten ComboBox72 (auch in der UserForm) im Tabellenblatt "Erfassung_Bearbeitung" Spalte "AB" den Wert sucht
wenn jetzt der Wert aus der ComboBox51 in der Spalte "H" gefunden wurde und gleichzeitig der Wert aus der ComboBox72 in der Spalte "AB" gefunden wurde sollen mir die nach beiden Kriterien gefilterten Datensätze in die List Box geschrieben werden.
Habe nach tagelangen rumexperimentieren keine passende Lösung dazu gefunden.
Wie muss ich meinen Code abändern oder wo muss gegebenenfalls die Codezeile einfügen das beide Kriterien berücksichtigt werden und nicht wie unten im Code nur 1 Kriterium berücksichtigt wird.
Private Sub cmdSuchen_Team_Click()
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strFirst As String
ListBox1.Clear
Application.ScreenUpdating = False
With Sheets("Erfassung_Bearbeitung")
Set rngBereich = .Columns("H:H")       'sucht in Spalte "H" nach  Team
'es soll jetzt aber nach Spalte "H" und nach Spalte "AB" gesucht werden
'hier brauche ich eine Lösung welche ich aber selbst nicht gelöst bekomme
Set c = rngBereich.Find(ComboBox51, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
strFirst = c.Address
Do
ListBox1.AddItem .Cells(c.Row, 1)
lngAnzahl = ListBox1.ListCount
ListBox1.List(lngAnzahl - 1, 1) = .Cells(c.Row, 1)      'ID
ListBox1.List(lngAnzahl - 1, 2) = .Cells(c.Row, 2)      'Equipment-Nummer
ListBox1.List(lngAnzahl - 1, 3) = .Cells(c.Row, 8)      'Bahnhof-Name
ListBox1.List(lngAnzahl - 1, 4) = .Cells(c.Row, 3)      'Beschreibung-Eqipment
ListBox1.List(lngAnzahl - 1, 5) = .Cells(c.Row, 74)    'Bemerkung
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address  strFirst
End If
End With
With ListBox1
On Error Resume Next
.SetFocus
.ListIndex = 0
End With
Application.ScreenUpdating = True
Label923 = ListBox1.ListCount
End Sub
Kann mir jemand dabei helfen und den Code evtl. diesbezüglich abändern?
Für Eure Bemühungen bedanke ich mich bereits im voraus
Gruß Andreas

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm ListBox nach 2 Kriterien füllen
08.11.2020 15:26:08
Nepumuk
Hallo Andreas,
teste mal:
Private Sub cmdSuchen_Team_Click()
    
    Dim c As Range
    Dim rngBereich As Range
    Dim lngAnzahl As Long
    Dim strFirst As String
    
    ListBox1.Clear
    
    With Worksheets("Erfassung_Bearbeitung")
        
        Set rngBereich = .Columns(8)
        
        Set c = rngBereich.Find(ComboBox51.Text, LookIn:=xlValues, LookAt:=xlWhole)
        
        If Not c Is Nothing Then
            
            strFirst = c.Address
            
            Do
                If .Cells(c.Row, 28).Value = ComboBox72.Text Then
                    
                    ListBox1.AddItem .Cells(c.Row, 1).Value
                    lngAnzahl = ListBox1.ListCount
                    ListBox1.List(lngAnzahl - 1, 1) = .Cells(c.Row, 1).Value 'ID
                    ListBox1.List(lngAnzahl - 1, 2) = .Cells(c.Row, 2).Value 'Equipment-Nummer
                    ListBox1.List(lngAnzahl - 1, 3) = .Cells(c.Row, 8).Value 'Bahnhof-Name
                    ListBox1.List(lngAnzahl - 1, 4) = .Cells(c.Row, 3).Value 'Beschreibung-Eqipment
                    ListBox1.List(lngAnzahl - 1, 5) = .Cells(c.Row, 74).Value 'Bemerkung
                    
                End If
                
                Set c = rngBereich.FindNext(c)
                
            Loop Until c.Address = strFirst
            
            Set c = Nothing
            
        End If
    End With
    
    With ListBox1
        If .ListCount > 0 Then .ListIndex = 0
        .SetFocus
    End With
    
    Label923.Caption = ListBox1.ListCount
    
End Sub

Gruß
Nepumuk
Anzeige
AW: UserForm ListBox nach 2 Kriterien füllen
08.11.2020 16:04:00
Andreas
Hallo Nepumuk,
Super, mein Kopfzerbrechen hat ein Ende, vielen herzlichen Dank
funktioniert bestens
Dir noch ein schönes Wochenende
Gruß Andreas

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige