Registriert seit: 10.12.2020
Version(en): 365
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:
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
Userform Einbauteile.xlsm (Größe: 33,86 KB / Downloads: 4)
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo, :19:
probiere es mal so: :21:
Userform Einbauteile.xlsm (Größe: 31,29 KB / Downloads: 7)
________
Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28
• tyr0n
Registriert seit: 10.12.2020
Version(en): 365
10.12.2020, 11:10
(Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2020, 11:10 von tyr0n.)
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.
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
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)
________
Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28
• tyr0n
Registriert seit: 10.12.2020
Version(en): 365
: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.
Registriert seit: 10.12.2020
Version(en): 365
10.12.2020, 13:25
(Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2020, 13:26 von tyr0n.)
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!
Userform Einbauteile NEU.xlsm (Größe: 36,73 KB / Downloads: 2)
Registriert seit: 10.12.2020
Version(en): 365
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
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo, :19:
so: :21:
Userform Einbauteile NEU.xlsm (Größe: 33,55 KB / Downloads: 6)
Du kannst das natürlich auch evaluieren.
________
Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28
• tyr0n
Registriert seit: 29.09.2015
Version(en): 2030,5
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
Registriert seit: 10.12.2020
Version(en): 365
11.12.2020, 09:08
(Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2020, 09:08 von tyr0n.)
(10.12.2020, 17:36)Case schrieb: Hallo, :19:
so: :21:
Du kannst das natürlich auch evaluieren.
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!!
|