Registriert seit: 29.09.2015
Version(en): 2030,5
Code:
Private Sub UserForm_Initialize()
With ListBox1
.List = Tabelle2.Cells(1).CurrentRegion.Value
.ColumnCount = UBound(.List, 2) - 1
For j = 1 To .ListCount - 1
.List(j, 11) = Format(.List(j, 11), "hh:mm:ss")
Next
End With
End Sub
Registriert seit: 05.12.2019
Version(en): 2016
Hallo!
Ich habe nun folgenden Code: -> Anzeige der Spalten 3, 1 & 5 in der Listbox1
Private Sub UserForm_Initialize()
ListBox1.List = Cells(1).CurrentRegion.Value
ListBox1.List = Application.Index(ListBox1.List, Evaluate("row(2:" & ListBox1.ListCount & ")"), Array(3, 1, 5))
End Sub
durch
Private Sub UserForm_Initialize()
With ListBox1
.List = Tabelle1.Cells(1).CurrentRegion.Value
.ColumnCount = UBound(.List, 2) - 1
For j = 1 To .ListCount - 1
.List(j, 11) = Format(.List(j, 11), "hh:mm:ss")
Next
End With
End Sub
ersetzt.
Es kommt jedoch eine Fehlermedlung: Eigenschaft List konnte nicht abgerufen werden. Ungültiges Argument.
Warum das? Nur in der Spalte 5 stehen meinen Uhrzeiten drin.
Was bedeutet im Code eigentlich die Zahl 11? Woher weiß das Programm (durch den Code), dass nur das Uhrzeitformat in Spalte 5 drin steht?
Danke
Markus
Registriert seit: 29.09.2015
Version(en): 2030,5
02.03.2022, 22:43
(Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2022, 22:49 von snb.)
Hättest du testen können:
Code:
Private Sub UserForm_Initialize()
With ListBox1
.List = Tabelle1.Cells(1).CurrentRegion.Value
.List = Application.Index(.List, Evaluate("row(2:" & .ListCount & ")"), Array(3, 1, 5))
.ColumnCount = UBound(.List, 2) - 1
For j = 1 To .ListCount - 1
.List(j, 2) = Format(.List(j, 2), "hh:mm:ss")
Next
End With
End Sub
Wenn nur 3 Spalten eingelesen werden in den Listbox dann ist ubound(.list) = 2
Aber: warum sollte man die Datenstruktur im Arbeitsblatt nicht isomorph zu dem Listbox machen ?
Lese mal bitte etwas mehr : arrays, listbox, combobox, lbound, ubound, application.index
Was du willst/fragst ist nicht für Anfänger in VBA.
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• Redgeier
Registriert seit: 05.12.2019
Version(en): 2016
Leider funktioniert das bei mir nicht. Es wird nur 1 Spalte in der Listbox angezeigt. Nur die Spalte 3 (aus Array (3, 1, 5).
Die Spalten 1 und 5 (hier mit Uhrzeitformat) wird leider nicht in der Listbox angezeigt.
Mmmmhhhh
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
es müsste auch heißen:
.ColumnCount = UBound(.List, 2) + 1
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
Danke Uwe!
So klappt es nun.
Eine kleine Frage habe ich noch.
Es zeigt ja ab der 2. Zeile die Einträge aus der Tabelle an (..Evaluate("row (2:" & .ListCount & ")"), Array (3, 1, 2, 5))
Und die Umwandlung in das Uhrzeit-Format klappt jedoch erst ab der 3. Zeile..warum?
Der erste Eintrag in der Listbox hat noch den 0,33...-Wert.
Erst ab der 2. Zeile in der Listbox wird das Format korrekt angezeigt.
Ändere ich Row in 1, wird die Spaltenüberschrift mit in der Listbox angezeigt und die 1. Zeile mit der Uhrzeit ist korrekt. Die Überschrift sollte aber nicht mit in die Listbox.
Gruß Markus
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Markus,
For j = 0 To .ListCount - 1
.List(j, 2) = Format(.List(j, 2), "hh:mm:ss")
Next
Die Nummerierung der Zeilen und Spalten einer Listbox beginnt jeweils mit 0 (Null).
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