Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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
Gefilterte Daten in Combobox nehmen
27.09.2016 16:47:15
Julian
Hallo zusammen,
habe folgendes Problem:
Ich habe ein worksheet in dem sich die Einträge "ADDED" und "NOT ADDED" im Sheet "SALES PLAN" Spalte A befinden. Ist der Eintrag in Spalte A "ADDED", so soll es mir den Eintrag aus Spalte G Sheet "SALES PLAN" in die Combobox1 schreiben. Ist der Eintrag in Spalte A "NOT ADDED", so soll es mir Eintrag aus Spalte G in Combobox2 übernehmen.
Zudem habe ich noch einen Filter eingebaut, den ich bisher noch nicht beachte...ich möchte nur die gefilterten Daten in der Combobox haben...
Leider schreibt es mir nichts rein...
Habe den Code unten teils aus Foren zusammenkopiert und versucht zu verwenden.
Klappt leider nicht... Jemand eine IDEE?
Danke / Gruß,
Julian
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Sub Dropdown25_BeiÄnderung()
' Dropdown25_BeiÄnderung Makro
Sheets("SALES PLAN").Select
Range("C1").Select
Sheets("CAT. COMPL.").Select
Range("C6").Select
SALES = Selection.Copy
Sheets("SALES PLAN").Select
ActiveSheet.Range("$A$1:$EZ$186").AutoFilter Field:=3, Criteria1:=Sheets("CAT. COMPL."). _
Range("G3").Text, Operator:=xlAnd
Sheets("CAT. COMPL.").Select
Application.CutCopyMode = False
Dim LastRow As Long
Dim I As Long
Dim J As Long
Dim k As Long
ReDim Liste(1) As String
ReDim Liste(2) As String
J = 1
k = 2
LastRow = Worksheets("SALES PLAN").Range("A:A").End(xlDown).Row
For I = 1 To LastRow
If Cells(I, 1) = "ADDED" Then
ReDim Preserve Liste(J)
Liste(J) = Cells(I, 7).Text
J = J + 1
End If
If Cells(I, 1) = "NOT ADDED" Then
ReDim Preserve Liste(J)
Liste(J) = Cells(I, 7).Text
J = J + 1
End If
Next I
With ComboBox1
.AddItem Liste(J)
End With
With ComboBox2
.AddItem Liste(k)
End With
End Sub

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gefilterte Daten in Combobox nehmen
27.09.2016 18:44:08
ChrisL
Hi Julian
Da Datenfelder (Array) nicht einfach zu verstehen sind, würde ich dir empfehlen die Werte einzeln mittels AddItem abzufüllen.
If Cells(I, 1) = "ADDED" Then
ComboBox1.AddItem Cells(I,7)
Else
ComboBox2.AddItem Cells(I,7)
End If
Trotzdem ein Erklärungsversuch:
"Normale" Variablen enthalten ja immer nur ein Wert z.B.
x = 1
Eine "Array-Variable" kann auch mehrere Werte enthalten z.B.
ar = Array(5, 3, 8)
Die Dimensionierung von Array erfolgt in der Klammer. Willst du also einem Array 10 Werte zuweisen z.B.
Dim ar(9)
9 weil Array immer mit 0 (null) beginnen, 0, 1, 2, 3...
Im Gegensatz zum ersten Beispiel kannst du die Werte auch einzeln zuweisen
Dim ar(2)
ar(0) = 5
ar(1) = 3
ar(2) = 8
Womit wir beim ersten Problem von deinem Code sind. Du bräuchtest zwei separate Arrays:
Dim Liste1(10)
Dim Liste2(10)
Die Zuweisung erfolgt dann mit List:
ComboBox1.List = Liste1
Nun hast du das nächste Problem, auf welche Anzahl ist das Array zu dimensionieren. Entweder ermittelst du vorgängig die genaue Anzahl mit ZÄHLENWENN resp. CountIf z.B.
Dim lAnzahl As Long
lAnzahl = WorksheetFunction.CountIf(Columns(1), "ADDED")
ReDim Liste1(lAnzahl)
Oder du verwendest Preserve d.h. der Array-Inhalt bleibt erhalten und die Dimensionierung erweitert/erhöht sich. Beispielhaft:
iCounter = iCounter + 1
ReDim Preserve Liste1(iCounter)
Liste1(iCounter) = Cells(i,7)
Array sind eine gute Sache, u.a. um schnelle Codes zu produzieren. In deinem Fall (ComboBox mit nur einer Spalte) scheint mir AddItem aber genauso schnell und deutlich einfacher ;)
cu
Chris
Anzeige
AW: Gefilterte Daten in Combobox nehmen
27.09.2016 19:19:15
Werner
Hallo Julian,
du hast jetzt zwar schon eine Antwort von Chris, da ich aber ein kurzes Beispiel zusammengebaut habe, auch mit der AddItem-Methode, lade ich es mal hoch.
https://www.herber.de/bbs/user/108458.xlsm
Gruß Werner
AW: Gefilterte Daten in Combobox nehmen
27.09.2016 20:51:38
Julian
Hallo zusammen,
erstmal tausend Dank für eure Antworten. Super echt klasse und funktioniert beides habe es gerade ausprobiert. Toll, dass einem so gut geholfen wird.
Mein Problem war zudem noch, dass ich den Text aus ActiveX mit Makroaufzeichnungen vermischt habe - wenigstens daraus gelernt... :)
Wie kann ich das ganze jetzt noch erweitern, sodass nur gefiltertes mit in die Combobox übernommen wird?
Danke / Gruß,
Julian
Anzeige
AW: Gefilterte Daten in Combobox nehmen
27.09.2016 21:41:03
Werner
Hallo Julian,
teste mal.
https://www.herber.de/bbs/user/108465.xlsm
Ich habe den Code jetzt im DorpDown-Ereignis der Combobox1 drin. Bedeutet, sobald du auf das Pfeilsymbol der Combobox1 klickst wird das Makro ausgeführt und die beiden Comboboxen werden entsprechend befüllt.
Gruß Werner
AW: Gefilterte Daten in Combobox nehmen
27.09.2016 22:16:53
Julian
Hallo Werner,
auch das klappt. Fettes Merci, wirklich vielmals!!
Gruß,
Julian
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
27.09.2016 22:18:20
Werner

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige