Clever-Excel-Forum

Normale Version: Listbox zeigt ganze Spalte an - Doppelte Werte sollen nicht angezeigt werden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo Community,

ich bin durch Google auf dieses Forum gestoßen. Nachdem ich im MOF keine Lösung gefunden habe (Thread wurde als erledigt markiert), hoffe ich das ich damit dem "Crossposting" aus dem Wege gehe und hoffe hier eine Unterstützung zu bekommen.


Ich habe eine Userform die aus einem Dropdown und mehrere ListBoxen besteht. Diese funktionierte auch einwandfrei. Nun musste ich jedoch eine Listbox erweitern, weil ich in der Tabelle eine weitere Spalte hinzugefügt habe.

Hier mal ein Bild der Listbox mit dem Ist und Soll Zustand:

[attachment=35783]

In den ersten beiden Drowndown / Listbox (Produktgruppe und Unterproduktgruppe) werden alle Einträge aus den Spalten nicht mehrfach angezeigt, sondern zusammengefasst.

Mein Problem liegt in der Listbox Produktliste2 Hier werden die Werte aus der Spalte C mehrfach und nicht zusammengefasst aufgelistet.

Ich finde leider nicht den Fehler und komme einfach nicht weiter :( Ich würde mich freuen wenn mich jemand hierzu unterstützen könnte.

Ich vermute den Fehler in der Private Sub produktliste_Click() diese füllt die Produktliste2 Listbox.

Vielen lieben Dank im Voraus und viele Grüße

tyron

[attachment=35784]
Hallo, :19:

probiere es mal so: :21:
[attachment=35786]
OMG! Es funktioniert. Vielen vielen Dank für die sooooo rasche Hilfe. Ich bin begeistert und muss gleich prüfen an was es lag.

Hallo Case,

einen kleinen Fehler habe ich noch. Wenn das Tabellenblatt (Einbauteile) mit den Daten nicht aktiv ist, dann Zeigt er mir in der Listbox "Nennweite und 1000" an.
Es könnte aber sein, das die Userform auf einem anderen Tabellenblatt geöffnet wird.

Ich habe auch schon versucht ein Worksheets("Einbauteile") vor deine .Range zu setzen um das Tabelltenblatt direkt anzusprechen. Funktioniert allerdings nicht :(


Dein Code funktioniert einwandfrei wenn die Tabelle "Einbauteile" aktiv ist.
Hallo, :19:

mein Fehler. Habe noch einen Punkt vor Cells vergessen: :21:

Code:
arrBereich = .Range("C2:C" & .Cells(Rows.Count, 3).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
:100:   :15:

!! Reicht das als Dankeschön?? Ich bin begeistert! Ich versuche mich mal weiter und werde deine Vorgehensweise für das befüllen der anderen Listboxen verwenden.
Hallo, ich noch einmal,

aktuell fülle ich die Daten aus der Listbox in Zellen. Das funktioniert auch ganz gut mit:


Code:
Private Sub hoehe_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim lngZeile As Long
    With ActiveSheet
  lngZeile = .Cells(13, 1).End(xlUp).Row
    If lngZeile = 12 Then
        MsgBox "Kein platz mehr!"
        Exit Sub
    Else
        lngZeile = IIf(lngZeile < 3, 3, lngZeile + 1)
            Cells(lngZeile, 1).Value = gruppe.Value
            Cells(lngZeile, 2).Value = produktliste.Value
            Cells(lngZeile, 3).Value = Produktliste2.Value
            Cells(lngZeile, 4).Value = hoehe.Value
            Cells(lngZeile, 6).Value = Evaluate("=lookup(2,1/(Einbauteile!C2:C1000&Einbauteile!D2:D1000= """ & Produktliste2 & """ & """ & hoehe.Value & """),Einbauteile!$F$2:$F$1000)")
    End If
End With
End Sub


Allerdings bin ich mit der lookup formel noch nicht ganz zufrieden. Ich würde gerne auch noch die gruppe.Value abfragen, bekomme das aber nicht hin.

Mein Versuch war schon:

Code:
Cells(lngZeile, 6).Value = Evaluate("=lookup(2,1/(Einbauteile!A2:A1000&Einbauteile!C2:C1000&Einbauteile!D2:D1000= """ & gruppe & """ & Produktliste2 & """ & hoehe.Value & """),Einbauteile!$F$2:$F$1000)")

Leider bekomme ich eine #NV als Rückmeldung.
Anbei auch noch einmal die Datei.

Könnte nochmal jemand drüber schauen? Vielen Dank!

[attachment=35788]
Noch eine kurze Ergänzung zu meiner Anfrage aus dem letzten Post.

im Grunde genommen soll aus dem "Einbauteile" Tabellenblatt folgende Zeile gesucht werden die mit:

dem Value aus der Listbox

gruppe.value (Einbauteile!A2:A1000)
produktliste.value (Einbauteile!B2:B1000)
produktliste2.value (Einbauteile!C2:C1000)
hoehe.value (Einbauteile!D2:D1000)

übereinstimmt und aus der Zeile dann die Spalte F eingetragen werden.

Vielen Dank im Voraus.

Viele Grüße tyron
Hallo, :19:

so: :21:
[attachment=35796]

Du kannst das natürlich auch evaluieren. Dodgy
Verzichte auf additm zum befuòllen einer Listbox/Combobox.

Statt

Code:
Private Sub UserForm_Initialize()
   Dim Zei As Long
   With Preise.gruppe
    For Zei = 2 To Sheets("Einbauteile").Range("A65536").End(xlUp).Row
        If Application.WorksheetFunction.CountIf(Sheets("Einbauteile").Range("A2:A" & Zei), Sheets("Einbauteile").Range("A" & Zei)) = 1 Then .AddItem Sheets("Einbauteile").Range("A" & Zei)
    Next Zei
    .ListRows = .ListCount + 1
'End With
End Sub


verwende
Code:
Private Sub UserForm_Initialize()
  Tabelle6.Cells(1).currentregion.columns(1).AdvancedFilter 2, , Tabelle6.Cells(1, 30), True
  gruppe.List = Tabelle6.Cells(1, 30).CurrentRegion.Value
  Tabelle6.Cells(1, 30).CurrentRegion.ClearContents
End Sub
(10.12.2020, 17:36)Case schrieb: [ -> ]Hallo, :19:

so: :21:


Du kannst das natürlich auch evaluieren. Dodgy

Guten Morgen Case, vielen Dank für deine tolle Unterstützung bislang. Deine Variante funktioniert - keine Frage!
Ich habe jedoch das Problem, dass ich bei meinem Vorhaben (anders als hier in der Vorlagen Exceldatei) die Gruppe, Unterproduktgruppe nicht in die Tabelle eintragen werde.
Somit kann er die Zellen 1,2,3 aus der Reihe nicht mit der Einbauteile vergleichen. Gibt es eine Möglichkeit die Values aus der Listbox mit der Zeile aus der Einbauteile Tabelle zu vergleichen/filtern ohne diese irgendwo schreiben zu müssen?

Cells(lngZeile, 6).Value = Evaluate("=lookup(2,1/(Einbauteile!C2:C1000&Einbauteile!D2:D1000= """ & Produktliste2 & """ & """ & hoehe.Value & """),Einbauteile!$F$2:$F$1000)")

das funktioniert soweit, allerdings benötige ich noch die 3. Abfrage aus der gruppe combibox um das Ergebnis exakt zu erhalten. Ein Filtern nur nach Produktliste2 und hoehe.Value hat zuviele Ergebnisse in der Einbauteile Tabelle.

Ich hoffe ich habe mich verständlich ausgedrückt. Das hier ist alles nicht so einfach für mich :)


EDIT:// ich habe es!! zwischen Produktliste2 haben noch """ und & gefehlt! :)

Vielen Dank für Eure bisherige Unterstützung!!
Seiten: 1 2 3 4