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


pamloly

Grünschnabel
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
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
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