Clever-Excel-Forum

Normale Version: Kombinationsfeld mit Namensbereich
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo atilla, hallo Basisa,

dank eurer Hilfe wirds langsam...

Die Auswahl mit dem 

Private Sub ComboBox23_GotFocus()

ComboBox23.List = Worksheets("Umsätze").Range("Kunde_Lieferant").Value

End Sub

funktioniert schonmal! Jetzt wärs noch klasse die doppelten Einträge rauszufiltern. In der Umsatzliste steht zum Beispiel das ich am 01.01.2017 und am 01.03.2017 bei Lieferant "abc" Artikel eingekauft habe. In der Umsatzliste erscheint also abc doppelt. Im Kombinationsfeld soll abc nur einmal erscheinen [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]
Hallo,

das wäre mein Vorschlag:


Code:
Private Sub ComboBox23_GotFocus()

Dim feld As Variant, objDic As Object, i As Long
   Set objDic = CreateObject("scripting.dictionary")
   feld = Sheets("Umsätze").Range("Kunde_Lieferant")
   For i = 1 To UBound(feld)
       If feld(i, 1) <> "" Then objDic(feld(i, 1)) = ""
   Next
   ComboBox23.List = objDic.Keys
   Set objDic = Nothing
End Sub
Hallo Thomas,
noch ein Hinweis:
Solche Mappen sind gefährdet. Man sollte mit so wenig Farbe wie nötig arbeiten, man sollte Bereiche nur so groß wälen wie nötig, Bedingte Formate in maßen einsetzen,
Formen und grafische Elemente nur in Maßen einsetzen, also alles etwas maßvoller einsetzen. Denn sonst ist Die Datei irgendwann nicht mehr brauchbar.
Hallo atilla,

wow!

Funktioniert einwandfrei! (Und übersteigt bei weitem meine bescheidenen Excelkenntnisse...)

Vielen Dank an euch beide für eure Hilfe!

Thomas
Hi,
wenn schon dann auch gleich sortieren. ;) und echt dynamisch gestallten ohne deinen Namen!

Code:
'**************************
'Code in "dieseArbeitsmappe"
'**************************
Option Explicit
Private Sub Workbook_Open()
ThisWorkbook.Worksheets("Erfassung").Activate
Call cbb
End Sub

'********************************
'Code in einem allgemeinen Modul
'********************************
Public Function comeOn(rng As Variant) As Variant
Dim Var_Item As Variant, objAL As Object
Set objAL = CreateObject("System.Collections.Arraylist")
With objAL
    For Each Var_Item In rng
        If Var_Item.Value <> "" Then
            If Not .contains(Var_Item.Value) Then .Add Var_Item.Value
        End If
    Next
    .Sort
    comeOn = WorksheetFunction.Transpose(.toArray)
End With
Set objAL = Nothing
End Function
Sub cbb()
Dim rng As Range, Var_ar As Variant
Tabelle1.ComboBox23.List = comeOn(Tabelle6.ListObjects(1).ListColumns(3).DataBodyRange)
End Sub
[attachment=9928]
Hi Chris,

(01.03.2017, 16:07)chris-ka schrieb: [ -> ]wenn schon dann auch gleich sortieren. ;) und echt dynamisch gestallten ohne deinen Namen!

bei Workbook_Open wird ccp markiert, weil Bibliothek nicht gefunden.

Es fehlt da wohl der Windows Common Control - Verweis.


[edit]
ok, ich meinte ccb

mit cbb geht es, auch ohne die Bibliothek.
Hi,

ccp gibt es mal gar nicht ^^

jetzt geht es hatte ccb
statt auf cbb verwiesen!

Danke für den Hinweis
Hallo Chris,

schöne Lösung, werde ich abspeichern.
Da steckt einiges drin.
Hallo Chris,

vielen Dank für deine Lösung!

Das Kombinationsfeld macht jetzt alles was es soll [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]. Ich finde dieses Forum einfach nur den Wahnsinn. Da wird aus einem einfachen "Wie kann ich ListfillRange mit Namensbereich füllen?" diese Lösung bei der an alles gedacht wurde.

Vielen vielen Dank nochmal und schöne Grüße

Thomas
Jetzt muss ich mich leider doch noch mal melden...

Leider verträgt sich irgendwas im Code nicht. Es bringt mir einen Laufzeitfehler wenn ich Daten ins Archiv übertragen will "Fehler beim Vergleich von zwei Elementen im Array".

Es markiert mir im Modul die Zeile .Sort

Anbei nochmal die Datei.

Danke

Thomas
Hi,

ja, aber der Wurm war an anderer Stelle. :)
Damit sich die Combo aktualisieren kann, habe ich das jetzt so gemacht, dass sich die Combo erst dann aktualisiert wenn ein Rechnungsdatum eingetragen wird.

[attachment=9956]
Seiten: 1 2 3