Hallo,
ich möchte in einem Userformular eine Combobox mit Werten aus einem Tabellenblatt füllen.
Dabei geht es darum, in der ComboBox alle Kundennummern anzuzeigen.
In dem Tabellenblatt, aus dem ich mir die Kundennummern holen möchte, sind diese in Spalte B mehrfach vorhanden.
Nun bräuchte ich quasi einen „Select“:
„Select distinct SpalteB from TabellenBlatt Aufträge“
Ich habe es versucht mit Zählewenn, komme aber nicht weiter. Ich brauche die Daten ja in der Form, dass ich Sie in die Combobox schreiben kann.
Kann mir jemand helfen?
Gruß
Sina
ich löse sowas meist durch Hilfsspalten bzw Hilfstabellenblätter…
Mit
Zählenwenn(B$1:B2;B2)
zählst Du, wie oft die aktuelle Kundennummer schon vorgekommen ist.
Wenn sie mehr als 1x vorkommt, dann lässt Du den Eintrag aus - ansonsten nimmst Du ein
MAX(C$1:C1)+1
(wenn wir diese Formel in C stehen haben) um dir eine „id“ zu machen…
sprich das ganze sieht dann etwa so aus (in Spalte C)
=WENN(Zählenwenn(B$1:B2;B2)>1;MAX(C$1:C1)+1;"")
anschliessend in Spalte D nochmal die Kundennummern wiederholen weil SVerweis ja nur nach rechts suchen kann -.-
=WENN(C2="";"";B2)
und im Hilfsdatenblatt einen SVERWEIS() auf die ganzen Zahlen.
Dann hast Du alles untereinander stehen und kannst es als Quelle für Deine Combobox nehmen…
selbst wenn das Blatt ausgeblendet ist… 
Zu Fuss z.b.
Sub nurEinen()
kopiersortier
Filter
End Sub
Sub kopiersortier()
Sheets("DeineTabelle").Select
Columns("B:B").Select
Selection.Copy
Sheets("SortierBlatt").Select
Columns("A:A").Select
ActiveSheet.Paste
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, \_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, \_
DataOption1:=xlSortNormal
End Sub
Sub Filter()
Dim ALTERWERT
Dim NEUERWERT
Dim MAXZEILEN
Dim ANFANG
Dim SPALTE
SPALTE = 1
ANFANG = 2
MAXZEILEN = 20
For zeile = 1 To MAXZEILEN
NEUERWERT = Sheets("SortierBlatt").Cells(zeile, SPALTE)
If (ALTERWERT = NEUERWERT) Then
Else: MsgBox (NEUERWERT) ' SchreibeInCombobox (NEUERWERT)
ALTERWERT = NEUERWERT
End If
Next
End Sub
Werte bitte selber Anpassen
Hallo,
ich möchte in einem Userformular eine Combobox mit Werten aus
einem Tabellenblatt füllen.
Dabei geht es darum, in der ComboBox alle Kundennummern
anzuzeigen.
In dem Tabellenblatt, aus dem ich mir die Kundennummern holen
möchte, sind diese in Spalte B mehrfach vorhanden.
Hi Sina,
Private Sub UserForm_Initialize()
ComboBox1.ListRows = Range(„G2“).Value
ComboBox1.RowSource = „Tabelle1!F2:F“ & Range(„G2“).Value + 1
End Sub
bezieht sich auf:
Tabellenblattname: Tabelle1
A B C D E F G
1 nr Hilf1 Hilf2 Anzahl
2 1 1 1 4
3 2 2 2
4 4 4 3
5 2 4
6 3 3 #ZAHL!
7 2 #ZAHL!
8 1 #ZAHL!
9 4 #ZAHL!
10 2 #ZAHL!
Benutzte Formeln:
E2: =WENN(UND(B2"";ZÄHLENWENN($E$1:E1;B2)=0);B2;"")
E3: =WENN(UND(B3"";ZÄHLENWENN($E$1:E2;B3)=0);B3;"")
E4: =WENN(UND(B4"";ZÄHLENWENN($E$1:E3;B4)=0);B4;"")
E5: =WENN(UND(B5"";ZÄHLENWENN($E$1:E4;B5)=0);B5;"")
E6: =WENN(UND(B6"";ZÄHLENWENN($E$1:E5;B6)=0);B6;"")
E7: =WENN(UND(B7"";ZÄHLENWENN($E$1:E6;B7)=0);B7;"")
E8: =WENN(UND(B8"";ZÄHLENWENN($E$1:E7;B8)=0);B8;"")
E9: =WENN(UND(B9"";ZÄHLENWENN($E$1:E8;B9)=0);B9;"")
E10: =WENN(UND(B10"";ZÄHLENWENN($E$1:E9;B10)=0);B10;"")
F2: =KKLEINSTE($E$2:blush:E$100;ZEILE()-1)
F3: =KKLEINSTE($E$2:blush:E$100;ZEILE()-1)
F4: =KKLEINSTE($E$2:blush:E$100;ZEILE()-1)
F5: =KKLEINSTE($E$2:blush:E$100;ZEILE()-1)
G2: =ANZAHL(F2:F100)
Namen in der Tabelle:
Anzahl: =Tabelle1!$G$2
Gruß
Reinhard
Hallo,
oder so:
Private Sub UserForm\_Initialize()
Dim Zei As Long
With UserForm1.ComboBox1
For Zei = 2 To Range("B65536").End(xlUp).Row
If Application.WorksheetFunction.CountIf(Range("B2:B" & Zei), Range("B" & Zei)) = 1 Then .AddItem Range("B" & Zei)
Next Zei
.ListRows = .ListCount + 1
End With
End Sub
Gruß
Reinhard
1 „Gefällt mir“