HERBERS Excel-Forum - das Archiv

Thema: VBA Split Werte nicht ändern (Wert in Datum)

VBA Split Werte nicht ändern (Wert in Datum)
AxelF1977
Moin zusammen,

mal wieder eine kleine Frage.

In einer Userform werden Daten zusammengestellt, was auch sonst...

Teile diese Daten werden in einer Hilfstabelle in EINE Zelle geschrieben (Daten werden so benötigt) und dann in die Nachbarspalte aufgeteilt per Split. Es wird an jedem Zeilenumbruch getrennt.

Dim vTemp As Variant

Dim iTemp As Integer
With ThisWorkbook.Worksheets("Beispiel") ' den Tabellenblattnamen ggf. anpassen!

vTempLOR = Split(.Range("C1").Value2, vbCrLf)
For iTempLOR = 0 To UBound(vTempLOR)
.Cells(1 + iTempLOR, 4).Value2 = vTempLOR(iTempLOR)
Next iTempLOR

End With


Nun ist da ein Wert bei, der eine Range an Tagen angibt (kann nicht verändert werden, Vorgabe, also muss ich damit leben)

Wert: 08-13

Der Wert wird in die Zelle C1 richtig geschrieben. Bei dem Split in Spalte D wird daraus aber 18.03.2024

Wie muss ich den Code anpassen, das es bei dem Wert bliebt?

Vielen Dank
AW: VBA Split Werte nicht ändern (Wert in Datum)
Onur

.Cells(1 + iTempLOR, 4).NumberFormat = "@" ''Zuerst Zelle als TEXT formatieren

.Cells(1 + iTempLOR, 4).Value2 = vTempLOR(iTempLOR)
AW: VBA Split Werte nicht ändern (Wert in Datum)
Yal
Hallo Axel,

setze einen Hochkomma vor dem Text.

Sub irgendwas()

Dim vTemp As Variant
Dim i As Integer 'Lauf-Variablen überlicherweise 1-stellig

With ThisWorkbook.Worksheets("Beispiel") ' den Tabellenblattnamen ggf. anpassen!
vTemp = Split(.Range("C1").Value2, vbCrLf)
For i = LBound(vTemp) To UBound(vTemp)
.Cells(1 + i, 4).Value2 = "'" & vTemp(i)
Next
End With
End Sub


Schalte auf alle Fälle in den VBA-Optionen "Variablendeklaration erforderlich". Nervt am Anfang, aber führt schnell zu besseren Programmierskills.
Poste bitte immer abgeschlossenen Code, von Sub bis End Sub.

VG
Yal
AW: VBA Split Werte nicht ändern (Wert in Datum)
GerdL
Moin Axel!

Dim vTemp As Variant

Dim iTemp As Integer
With ThisWorkbook.Worksheets("Beispiel") ' den Tabellenblattnamen ggf. anpassen!

vTempLOR = Split(.Range("C1").Value2, vbCrLf)
For iTempLOR = 0 To UBound(vTempLOR)
If InStr(vTempLOR(iTempLOR), "-") Then vTempLOR(iTempLOR) = "'" & vTempLOR(iTempLOR)
.Cells(1 + iTempLOR, 4).Value = vTempLOR(iTempLOR)
Next iTempLOR

End With


Gruß Gerd
AW: VBA Split Werte nicht ändern (Wert in Datum)
AxelF1977
Hallo zusammen,

ich habe den Teil von Onur eingebunden und noch weitere Veränderungen vorgenommen, jetzt geht es.
Komischerweise haben die anderen Ansätze nicht geklappt. Warum auch immer, denn logisch sehen alle aus.

Danke an alle für die Lösungsansätze!