Registriert seit: 05.12.2019
Version(en): 2016
Hallo!
Wie kann ich verschiedene Tabellenspalten in einer Listbox (Listbox1) ausgeben?
Ich habe eine große Tabelle (Tabelle1). In der Zeile 1 ist jeweils eine Bezeichnung für die Spalte. Ab Zeile 2 sind jeweils Eintragungen in den verschiedenen Spalten (von Spalte A bis Spalte O).
Wie bekomme ich es nun hin, dass die Eintragungen von nur 10 bestimmten Spalten (A, C, D, E, F, I, K, L, M, O) in meiner Listbox angezeigt werden? Die Eintragungen aus den Spalten B, G, H, J, N sollen demnach keine Beachtung in meiner Listbox1 finden.
Wie würde das gehen - mit welchem Code? Die Listbox1 befindet sich auf meiner Userform (Userform1).
Vielen Dank
P.S. Ich hatte bisher immer nur Beispiele gefunden, wo alle Spalten nacheinander (z.B. von Spalte A - Spalte F) in einer Listbox angezeigt werden. Ich möchte wie gesagt, nicht alle Spalten nacheinander in meiner Listbox ausgeben.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, Code: Private Sub UserForm_Initialize() Dim i As Long, j As Long Dim varC As Variant, varR As Variant varR = Worksheets("Tabelle1").Range("B1:O1").CurrentRegion.Value 'A, C, D, E, F, I, K , L , M , O varC = Array(1, 3, 4, 5, 6, 9, 11, 12, 13, 15) With Me.ListBox1 For i = 2 To UBound(varR) .AddItem varR(i, varC(0)) For j = 1 To UBound(varC) .List(i - 2, j) = varR(i, varC(j)) Next j Next i End With End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Redgeier
Registriert seit: 05.12.2019
Version(en): 2016
Vielen Dank Uwe!
Ich habe den Code jetzt so übernommen. Bei mir wird aber nur die Spalte A (mit den Einträgen ab Zeile 2) in der Listbox angezeigt!
Spalte C (3), D (4) usw. nicht..
Woran kann das liegen?
Und noch eine Frage:
varR = Worksheets("Tabelle1").Range("B1:O1").CurrentRegion.Value Warum hier .Range ("B1:O1")???
Die Eingaben beginnen doch bei A2..
Vielen Dank
Gruß
Markus
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi,
Du musst die ColumnCount-Eigenschaft der Listbox entsprechend anpassen.
Zur 2. Fage:
Bau mal testweise ein:
MsgBox Worksheets("Tabelle1").Range("B1:O1").CurrentRegion.Address
Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:1 Nutzer sagt Danke an {Boris} für diesen Beitrag 28
• Redgeier
Registriert seit: 05.12.2019
Version(en): 2016
Danke Boris!
Habe ColumnCount auf 10 gestellt und nun werden alle 10 auszugebenden Spalten angezeigt.
Wie viele Spalten kann man max. in einer Listbox anzeigen??
Geht auch 12, 13 oder mehr? Müsste man dafür nur den Wert ColumnCount erhöhen?
Gruß Markus
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi, da hilft - wie so oft - F1 Zitat:Für eine ungebundene Datenquellegibt es einen Grenzwert von 10 Spalten (0 bis 9).
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Markus, so geht es auch mit mehr als 10 Spalten: Code: Private Sub UserForm_Initialize() Dim i As Long, j As Long Dim varC As Variant, varL As Variant, varR As Variant varR = Worksheets("Tabelle1").Range("B1:O1").CurrentRegion.Value 'A, C, D, E, F, I, K , L , M , O varC = Array(1, 3, 4, 5, 6, 9, 11, 12, 13, 15) ReDim varL(1 To UBound(varR), 0 To UBound(varC)) For i = 2 To UBound(varR) For j = 0 To UBound(varC) varL(i - 1, j) = varR(i, varC(j)) Next j Next i Me.ListBox1.List = varL End Sub
Hi Boris, könntest Du bitte mal den Link zu dem 10-Spalten-Limit posten? Ich finde es nicht. Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Redgeier
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:1 Nutzer sagt Danke an {Boris} für diesen Beitrag 28
• Kuwer
Registriert seit: 05.12.2019
Version(en): 2016
Hi Uwe! Klappt wunderbar mit mehr als 10 Spalten in der Listbox.Wenn nicht alle Spalten mit einmal angezeigt werden können, scrollt man einfach nach rechts! Vielen Dank! Gruß Markus
Registriert seit: 05.12.2019
Version(en): 2016
Hallo Uwe! Danke nochmal für den Code für das Ausgeben von bestimmten Spalten in einer Listbox, sogar mait mehr als 10 Spalten. Ich habe von einem Bekannten Hilfe für eine ähnliche Umsetzung bekommen und wollte nun Deine Umsetzung in den vorhandenen Code einbauen, also dass ich eben nur bestimmte Spalten in meiner Listbox anzeigen lasse. Ich bekomme es aber nicht hin, die bestimmten Teile von Deinem Code in meinen vorhandenen Code einzuarbeiten. Vielleicht kannst Du mir noch nochmal helfen. Hier der Code von dem Bekannten (Umsetzung Ausgabe von Spalten - hier aber nur für die ersten 8 Spalten meiner Tabelle): Private Sub UserForm_Initialize() Dim avntValues As Variant Dim ialngIndex As Long, lngIndex As Long Dim objArrayList As Object avntValues = GetValues With ListBox1 .ColumnCount = UBound(avntValues, 2) .List = avntValues End With Set objArrayList = CreateObject(Class:="System.Collections.ArrayList") For lngIndex = 1 To 8 For ialngIndex = LBound(avntValues, 1) To UBound(avntValues, 1) If Not objArrayList.Contains(avntValues(ialngIndex, lngIndex)) Then _ Call objArrayList.Add(avntValues(ialngIndex, lngIndex)) Next Call objArrayList.Sort Controls("ComboBox" & CStr(lngIndex)).List = objArrayList.ToArray Call objArrayList.Clear Next Set objArrayList = Nothing End Sub Wie kann ich diesen Code nun abändern, um eben nur bestimmte Spalten aus der Tabelle anzeigen zu lassen? Hier nochmal Dein Code: Code: rivate Sub UserForm_Initialize()
Dim i As Long, j As Long
Dim varC As Variant, varL As Variant, varR As Variant
varR = Worksheets("Tabelle1").Range("B1:O1").CurrentRegion.Value
'A, C, D, E, F, I, K , L , M , O
varC = Array(1, 3, 4, 5, 6, 9, 11, 12, 13, 15)
ReDim varL(1 To UBound(varR), 0 To UBound(varC))
For i = 2 To UBound(varR)
For j = 0 To UBound(varC)
varL(i - 1, j) = varR(i, varC(j))
Next j
Next i
Me.ListBox1.List = varL
End Sub
Vielen Dank
Gruß Markus
|