Ausgabe verschiedener Spalten in einer Listbox
#31
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#32
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
Antworten Top
#33
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.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Redgeier
Antworten Top
#34
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
Antworten Top
#35
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:
  • Redgeier
Antworten Top
#36
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
Antworten Top
#37
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:
  • Redgeier
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste