ComboBox - doppelte Einträge verhindern

Moderator: ModerationP

Re: ComboBox - doppelte Einträge verhindern

Beitragvon 1Matthias » 23. Okt 2021, 16:00

Moin!
Wenn du deinen abgeänderten Code postest, könnte man schauen, wo der Fehler liegt.
Du müsstest eigentlich nur den Code von Daniel bei jedem Change eintragen und bei der Zeile mit dem additem die Spalte vom cells() anpassen. Wobei da aber wohl ein kleiner Fehler unterlaufen. ist. Die Prüfung innerhalb des for x = 0 ... darf nicht auf die Zelle geschehen, die mit ze verglichen wird sondern mit der, die eingefügt werden soll. Ungetestet, sollte es wohl so aussehen:
Code: Alles auswählen
Private Sub ComboBox1_Change()
Dim ze As String
Dim r As Integer
ComboBox2.Clear
ze = ComboBox1.Text
For r = 2 To Range("A65536").End(xlUp).Row
    If Sheets("INVENTAR").Cells(r, 2) = ze Then
        With ComboBox2
        For x = 0 To .ListCount - 1
            If .List(x) = Sheets("INVENTAR").Cells(r, 3) Then Exit For
        Next
        If x = .ListCount Then .AddItem Sheets("INVENTAR").Cells(r, 3)
        End With
    End If
Next r
End Sub

Private Sub ComboBox2_Change()
Dim ze As String
Dim r As Integer
ComboBox3.Clear
ze = ComboBox2.Text
For r = 3 To Range("A65536").End(xlUp).Row
If Sheets("INVENTAR").Cells(r, 3) = ze Then
With ComboBox3

For x = 0 To .ListCount - 1
        If .List(x) = Sheets("INVENTAR").Cells(r, 1) Then Exit For
    Next
    If x = .ListCount Then .AddItem Sheets("INVENTAR").Cells(r, 1)
End With
End If
Next r
End Sub

Private Sub ComboBox3_Change()
Dim ze As String
Dim r As Integer
ComboBox4.Clear
ze = ComboBox3.Text
For r = 4 To Range("A65536").End(xlUp).Row
If Sheets("INVENTAR").Cells(r, 1) = ze Then
With ComboBox4

For x = 0 To .ListCount - 1
        If .List(x) = Sheets("INVENTAR").Cells(r, 4) Then Exit For
    Next
    If x = .ListCount Then .AddItem Sheets("INVENTAR").Cells(r, 4)
End With
End If
Next r
End Sub


VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 972
Registriert: 15. Aug 2017, 18:36

Re: ComboBox - doppelte Einträge verhindern

Beitragvon Gast » 24. Okt 2021, 09:14

Hey Guten Morgen,

also so hat es zunächst mal super geklappt. Ich habe x noch definiert und dann hat es geklappt.

Aber es taucht ein neues Problem auf:

Als Beispiel:

Ich filtere zunächst den Bereich des Inventars "Hausmeister" -> dann filtere ich das Inventar "Wäschesammler" ....(bis hier hin alles super - keine Duplikate mehr)

Nun filtere ich die "Inventarnummer" - es müssten 4 Inventarnummern angezeigt werden. Es werden aber 8 Inventarnummern angezeigt, da es noch in anderen Bereichen Wäschesammler gibt. Es soll mir aber nur die Inventarnummern der Wäschesammler anzeigt werden, die sich im Bereich Hausmeister befinden. Wie kann ich das realisieren.


Ich möchte mich an dieser Stelle nochmal ganz herzlich bedanken, dass ihr soviel Geduld mit mir habt und mir mit eurem Fachwissen zu Seite steht!!!!!!!!!!!!!!!!!!!!!

Viele liebe Grüße

Thomas
Gast
 

Re: ComboBox - doppelte Einträge verhindern

Beitragvon snb » 24. Okt 2021, 10:47

Wenn du interessiert bist: 11 Methoden für dein Zweck
Vielleicht brauchst du Gtranslate ode DeepL dazu:

https://www.snb-vba.eu/VBA_Afhankelijke_Listboxen.html
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8854
Registriert: 25. Sep 2014, 16:37

Re: ComboBox - doppelte Einträge verhindern

Beitragvon 1Matthias » 25. Okt 2021, 18:51

Moin!
Du müsstest halt bei jeder Comboxbox noch prüfen, ob die Einträge der Zeile mit den Eintragungen der vorherigen Combos übereinstimmen.
Bei CB2 müsstest du hier
Code: Alles auswählen
If Sheets("INVENTAR").Cells(r, 3) = ze Then

also noch prüfen, ob die vorherige Bedingung aus dem Combox1_Change auch eintritt. Das war ja
Code: Alles auswählen
Sheets("INVENTAR").Cells(r, 2) = ze

Die Zeile müsste dann also so lauten:
Code: Alles auswählen
If Sheets("INVENTAR").Cells(r, 3) = ze and Sheets("INVENTAR").Cells(r, 2) = Combobox1.text Then

Beim der CB3 dann die Zeile noch um die Prüfung für die Spalte von CB2 erweitern usw. .
VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 972
Registriert: 15. Aug 2017, 18:36

Re: ComboBox - doppelte Einträge verhindern

Beitragvon Flotter Feger » 25. Okt 2021, 19:59

... auch hier wieder dasselbe ... warum erzählt der TO nicht gleich von Anfang an, dass er mehrere Controls hintereinander einsetzt ? Erst in Post #16 erfährt der geneigte Leser, was eigentlich Sache ist.

Dass das eigentlich der Autofilter par excellence kann ... interessiert da auch schon nicht mehr.

Schade, dass er bei mir auf I++ steht, sonst hätte ich ihm jetzt die Suchen mit mehreren Text-Comboboxen.xlsm verlinkt ... komplett fertig die Datei ... echt blöd.
VG Sabina

Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Bei mir läuft Win 7 32-Bit - Office 2016 Pro Plus 32-Bit, Office 2019 Pro Plus 32-Bit und Office 2021 Pro Plus 32-Bit
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3329
Registriert: 24. Okt 2016, 16:40

Vorherige

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Klaus-Dieter und 15 Gäste