ich hab mal wieder ein Problem das ich trotz Internetrecherche nicht lösen kann:
Ich habe ein Kombinationsfeld das ich gerne mit dem bereits definierten Namensbereich "Kunde_Lieferant" als ListFillRange befüllen würde. Wenn ich das ganze bei den Eigenschaften eingebe mit ListFillRange =Kunde_Lieferant wird das Eigenschaftsfeld gelöscht und eine Auswahl ist nicht möglich.
Auch ein Code aus dem Internet Private Sub ComboBox1_Change() ComboBox1.RowSource = "=Kunde_Lieferant" End Sub
half mir nicht weiter.
Wie schaffe ich es das mir das Kombinationsfeld nur die eingetragenen Werte aus dem Namensbereich anzeigt? Optimal wäre es wenn es mir auch noch doppelte Werte rausfiltern würde.
01.03.2017, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2017, 15:24 von Basisa.)
Klappt bei mir sehr gut ^^
Code:
Private Sub ComboBox1_DropButtonClick() ActiveSheet.Range("$B$5:$B$9").RemoveDuplicates Columns:=1, Header:=xlNo ComboBox1.RowSource = "=Kunde_Lieferant" End Sub
Doppelte Einträge würde ich vorher löschen!
EDIT: Oben im Code mit drin Das kann man natürlich noch dynamisch machen, aber das machst du bestimmt alleine ^^
01.03.2017, 15:33 (Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2017, 15:33 von atilla.)
Hallo Thomas,
eigentlich regelt man das beim Activate oder Initialize der Userform.
z.B:
Code:
Private Sub UserForm_Activate() ComboBox1.RowSource = "=Kunde_Lieferant" End Sub
sonst könntest Du das Enter Ereignis der Combobox nehmen:
Code:
Private Sub ComboBox1_Enter() ComboBox1.RowSource = "=Kunde_Lieferant" End Sub
Ich persönlich nutze lieber die List Eigenschaft statt RowSource, das ginge so:
Code:
Private Sub UserForm_Activate() ComboBox1.List = Range("Kunde_Lieferant").Value End Sub
Das mit den Duplikaten habe ich übersehen. Das muss noch extra eingearbeitet werden.
Im Grunde dürften aber in der Lieferantenliste, wenn sie eine Auflistung der Lieferanten ist, keine Duplikte enthalten sein. Dann ist die Liste nicht richtig aufgebaut.
ich glaub ich stehe heute voll auf dem Schlauch...
Ich hab meine Datei mal hochgeladen.
Ich habe für meine Inventur ein "Erfassung"arbeitsblatt erstellt welches mir die Daten in das "Umsätze"arbeitsblatt überträgt. In der Erfassung will ich mit dem Kombinationsfeld bei Kunde_Lieferant mir die Namen aus der Umsatzliste holen die bereits eingetragen sind. Diese können vielfach vorkommen.
ActiveSheet.Range("$B$5:$B$100").RemoveDuplicates Columns:=1, Header:=xlNo ' das hier löscht die Duplikate vorher ComboBox1.List = Range("Kunde_Lieferant").Value ' trägt die Liste ein
End Sub
Wollte das ja mal probieren was er oben im Internet gefunden hat ^^
Dynamisch würde ich mit Cells(?, ?) machen Vorher abfragen wie Groß deine Liste ist wenn Sie denn immer wächst etc.
Hallo Thomas, da hast Du mich aber in die Irre geführt. Zuerst wollte ich Dir ein Beispiel für eine Combo in der Tebelle zeigen, da sehe ich Rowsource in Deinem ersten Post. Das gibt es aber nur in Combos auf Userformen.
Also bei Dir muss es anders ablaufen. Dann ginge folgendes:
Code:
Private Sub ComboBox23_DropButtonClick() ComboBox23.ListFillRange = "=Kunde_Lieferant" End Sub
Aber mit Duplikaten muss das ganz anders ablaufen und ich würde die Liste beim öffnen der Datei oder aktivieren der Tabelle einlesen