Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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
Inhaltsverzeichnis

ComboBox befüllen aus gefilterter Liste

ComboBox befüllen aus gefilterter Liste
14.05.2021 15:09:01
Alex70
Hallo VBA Gemeinde,
Ich möchte eine kleine Wa-Wi realisieren. Für die Warenausgabe (UserForm2) soll aus einer bestehenden Liste (Lagerbestandsliste) die Artikelnamen ausgelesen, doppelte Einträge entfernt und einer Combo-Box übergeben werden. Wählt man einen Artikelnamen wird mit einem Feld_afterupdate die Liste (Spalte D) danach gefiltert und gleichzeitig wieder die Werte aus Spalte I (Einheit) in die nächste Combo-Box (Gebinde) eingelesen. Nun erfolgt die gleiche Routine. Nach Auswahl in dieser Combo-Box wird in Spalte I danach gefiltert und die Werte aus Spalte C eingelesen und an die nächste Combo-Box (Abteilung) übergeben. Bei der Auswahl (Artikel1, Kasten (20Stk) ) müssten nun in der Combo-Box Abteilung drei Werte stehen. Dort stehen aber nur zwei. Und ich komme an dieser Stelle nicht weiter. Könnt Ihr hier unterstützen?
Code aus UserForm2:

Private Sub WahlBoxGebindeCombo_afterupdate()
Worksheets("Lagerbestandsliste").Activate
Set Liste = ActiveSheet.Range("B4:E20")
Liste.AutoFilter
Liste.AutoFilter Field:=3, Criteria1:=Me.WahlBoxArtikelCombo
Liste.AutoFilter Field:=8, Criteria1:=Me.WahlBoxGebindeCombo
Dim i As Long, n As Long
Dim wks As Worksheet, vntList()
Set wks = ThisWorkbook.Sheets("Lagerbestandsliste")
WahlBoxAbteilungCombo.Clear
With wks
For i = 5 To .Cells(Rows.Count, 3).End(xlUp).Row
'For i = 5 To 30
If WorksheetFunction.CountIf(.Range(.Cells(5, 3), .Cells(i, 3)), .Cells(i, 3)) = 1 And .Rows(i).Hidden = False Then
n = n + 1
ReDim Preserve vntList(1 To 1, 1 To n)
vntList(1, n) = .Cells(i, 3)
End If
Next i
End With
Debug.Print UBound(vntList, 2)
WahlBoxAbteilungCombo.List = WorksheetFunction.Transpose(vntList)
End Sub
Danke schoneinmal im Voraus!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox befüllen aus gefilterter Liste
14.05.2021 15:38:44
Nepumuk
Hallo Alex,
beim Berliner Pilsener gibt es nur 2 unterschiedliche Einheiten. Teste mal:
Code:

Code in die Zwischenablage[+][-]

Private Sub WahlBoxArtikelCombo_AfterUpdate()
Dim lngRow As Long
Dim objDictionary As Object
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
With Worksheets("Lagerbestandsliste")
.ListObjects("Bestandsliste").Range.AutoFilter Field:=3, _
Criteria1:=WahlBoxArtikelCombo.Text
For lngRow = 5 To .Cells(.Rows.Count, 9).End(xlUp).Row
If Not .Rows(lngRow).Hidden Then
objDictionary.Item(.Cells(lngRow, 9).Text) = vbNullString
End If
Next
End With
WahlBoxGebindeCombo.List = objDictionary.Keys
Set objDictionary = Nothing
End Sub


Gruß
Nepumuk
Anzeige
AW: ComboBox befüllen aus gefilterter Liste
14.05.2021 16:21:56
Alex70
Hallo Nepumuk,
vielen dank für die schnelle Antwort.
Ich habe den Code ausgetauscht und leider läuft er an dieser Stelle in den Laufzeitfehler '9'. Indes außerhalb des gültigen Bereichs.
.listobjects field:="3," _> Criteria1:=WahlBoxArtikelCombo.Text>
Warum? Weiß ich jetzt auch nicht.
LG Alex
AW: ComboBox befüllen aus gefilterter Liste
14.05.2021 16:25:27
Nepumuk
Hallo Alex,
den Namen des Listobjects (Bestandsliste) habe ich aus deiner Mappe. In der funktioniert der Code auch.
https://www.herber.de/bbs/user/146184.xlsm
Gruß
Nepumuk
Anzeige
AW: ComboBox befüllen aus gefilterter Liste
14.05.2021 19:58:58
Alex70
Hallo Nepumuk,
ich habe den Wald vor lauter Bäumen nicht mehr gesehen. Ja das war die Lösung und es funktioniert tadellos.
Vielen Dank für die Hilfe!
MfG Alex

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige