Jahr aus einer Excel-Liste auslesen und im Userform anzeigen.


pamloly

Grünschnabel
#1
Kann jemand mir helfen?
Ich möchte gerne aus dieser Liste nur das Jahr im UI(Userform) anzeigen lassen. Kann jemand mir bitte helfen?

Ich brauche nur einen Lösungansansatz.
 

pamloly

Grünschnabel
#4
In VBA: Year(CDate(Sheet1.Range("A30"))) ergibt 2015
Vielen Dank für den Antwort. Aber ich möchte in einer schleife einem Array füllen
- Array initialisieren
- Array füllen

' Year in Array legen
ReDim Array_Year(iSchleifenzaehler) As String

For iSchleifenzaehler = 2 To anzahl_eintraege
If Cells(iSchleifenzaehler, 1).Value <> "" Then
Array_Year(iSchleifenzaehler) = Year(Cells(iSchleifenzaehler, 1).Value)
End If
Next iSchleifenzaehler

und dann Array in der ListBox von meinem Userform anzeigen


' ListBox ausfüllen
Selection_Test_Userform.ListBox_year.Clear

With Selection_Test_Userform.ListBox_year
End With
Selection_Test_Userform.Show
End Sub


Leider ich bekomme immer einen Fehler "Runtime error 9", Subscript out on Range
 

Zvoni

Erfahrenes Mitglied
#5
Mehrere Punkte:
1) ReDim Array_Year(iSchleifenzaehler) As String
Zu diesem Zeitpunkt ist iSchleifenzaehler 0. Du dim'st also defacto ein array(0) --> 1 Element
In der For-Schleife beginnst du bei 2. Du versuchst also ein array(2) zu zuweisen, welches nicht existiert. Ergo Subscript out of Range
2) Welchen Wert hat Anzahl_Eintraege?
3) Du beginnst die For-Schleife bei 2, und verwendest die Schleifenvariable direkt als Array-Index.
Sollte das funktionieren, verschenkst du die ersten 2 Elemente des Array (0 und 1)

Ist jetzt nur das, was ich auf den ersten Blick gesehen habe.

EDIT: P.S.: An deiner Stelle würde ich mir überlegen, eine Collection anstatt eines Arrays zu benutzen.
Insbesondere, wenn du keine doppelten Jahreszahlen haben willst, ist die Collection deutlich einfacher zu handhaben