Registriert seit: 15.03.2019
Version(en): 2016
Hallo Zusammen,
ich bin noch absoluter VBA-Neuling und stehe vor einem recht umfangreichen Projekt - da scheitert es noch an wahrscheinlich einfachen Dingen wie bei folgendem Problem:
Die Userform in der angehängten Bsp.Datei enthält eine Combo und eine mehrspaltige Listbox.
Ich möchte, dass in der Listbox nur ausgegeben wird (Spalte A-E) , was zuvor in der Combobox (Spalte A) ausgewählt wurde.
Vielen Dank! :18:
Angehängte Dateien
Test_1.xlsm (Größe: 21,86 KB / Downloads: 9)
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
Registriert seit: 15.03.2019
Version(en): 2016
Auch ne gute Variante mit mehreren Comboboxen. Mal sehen, ob ich das auf meinen Fall umgemünzt bekomme. Danke schon mal!
Registriert seit: 31.08.2017
Version(en): 2013
Hi,
falls du etwas direkt auf deine Tabelle angepasst haben möchtest, habe ich hier was für dich.
Einfach deine Codezeilen durch die folgenden Codezeile ersetzen und mal testen:
Code:
Option Explicit Private Sub UserForm_Initialize() Dim lngZeileMax As Long Dim wksBlatt As Worksheet Set wksBlatt = tbl_Ma Dim i As Long Dim LRow As Long Lst_Ma.Clear lngZeileMax = wksBlatt.UsedRange.Rows.Count With Me.Lst_Ma .ColumnCount = 5 'Spaltenanzahl festlegen .ColumnHeads = True 'Spaltenüberschriften anzeigen .ColumnWidths = "90;150;150;60;60" 'Spaltenabstände festlegen .MultiSelect = fmMultiSelectMulti 'Mehrfachmarkierung festlegen .BackColor = RGB(165, 165, 165) 'Hintergrundfarbe festlegen .Font.Size = 12 'Schriftgröße festlegen .Font.Bold = True 'Schriftschnitt Fett einstellen End With For i = 2 To lngZeileMax With Lst_Ma .AddItem wksBlatt.Cells(i, 1) .List(.ListCount - 1, 1) = wksBlatt.Cells(i, 2) .List(.ListCount - 1, 2) = wksBlatt.Cells(i, 3) .List(.ListCount - 1, 3) = wksBlatt.Cells(i, 4) .List(.ListCount - 1, 4) = wksBlatt.Cells(i, 5) End With Next '1. Möglichkeit der Combobox: Item per Hand eingeben With UserForm1.Box1 .AddItem "Kakao" .AddItem "Banane" .AddItem "Schoko" .AddItem "Eis" .AddItem "Sauce" .AddItem "Kaffee" .AddItem "*" UserForm1.Box1.Text = "Einrichtung auswählen" End With End Sub Private Sub Box1_Change() Dim rngcellPLZ As Range Dim PLZ As String With tbl_Ma.Range("A1:A65536") UserForm1.Lst_Ma.Clear Set rngcellPLZ = .Find(UserForm1.Box1) If Not rngcellPLZ Is Nothing Then PLZ = rngcellPLZ.Address Do With UserForm1.Lst_Ma .ColumnCount = 5 .ColumnHeads = True .ColumnWidths = "90;150;150;60;60" .AddItem .List(.ListCount - 1, 0) = rngcellPLZ.Value .List(.ListCount - 1, 1) = rngcellPLZ.Offset(0, 1).Value .List(.ListCount - 1, 2) = rngcellPLZ.Offset(0, 2).Value .List(.ListCount - 1, 3) = rngcellPLZ.Offset(0, 3).Value .List(.ListCount - 1, 4) = rngcellPLZ.Offset(0, 4).Value End With Set rngcellPLZ = .FindNext(rngcellPLZ) Loop While Not rngcellPLZ Is Nothing And rngcellPLZ.Address <> PLZ End If End With Lst_Ma.ListIndex = Lst_Ma.ListCount - 1 End Sub
Grüße
Silcono
Folgende(r) 1 Nutzer sagt Danke an silcono für diesen Beitrag: 1 Nutzer sagt Danke an silcono für diesen Beitrag 28
• DN_89
Registriert seit: 15.03.2019
Version(en): 2016
Silcono, top - läuft!! Danke!!
Registriert seit: 15.03.2019
Version(en): 2016
Silcono, jetzt geht nur die rowsource eigenschaft nicht mehr? Wie kriege ich die spaltennamen angezeigt? Danke!
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
Hallo, schreib die Spaltenname über der ListBox in Labels ... sollte bei 5 Spalten doch wohl kein Problem sein.