Umwandeln in Zahl (Datum) muss sein
18.08.2010 19:45:21
Erich
Hi zusammen,
mit Hajos Code habe ich das auch nicht hinbekommen - da wird Text in die Zelle geschrieben,
der sich von Zahlenformatierungen nicht beeindrucken lässt.
Das Wichtigste ist, Datumse (also Zahlen!) in die Zellen zu schrieben, dann wirkt später auch das Format.
Hier zwei Versionen:
Eine überschreibt die Texte in Sp. A durch Datumse, die andere schreibt die Ergebnisse (Datum bzw. Text)
in die Spalten B:C:
Sub DatumFormatierenA()
Dim zz As Long ' bei Zeilen- oder Spaltennummern besser als Integer
zz = 5 ' 5 Überschriftzeilen (Änd. ab Zeile 6)
With Sheets("Monatsstunden")
Do While Not IsEmpty(.Cells(zz + 1, 1))
zz = zz + 1
.Cells(zz, 1).Value = _
CDate(Application.Substitute(.Cells(zz, 1).Value, "'", ""))
Loop
' Formatieren besser in einem Rutsch
If zz > 5 Then .Cells(6, 2).Resize(zz - 5).NumberFormat = "dd/mm/yy;@"
End With
End Sub
Sub DatumFormatierenABC()
Dim zz As Integer
zz = 5 ' 5 Überschriftzeilen (Änd. ab Zeile 6)
With Sheets("Monatsstunden (2)")
Do While Not IsEmpty(Cells(zz + 1, 1))
zz = zz + 1
' schreibt eine Zahl (ein Datum) in die Zelle:
.Cells(zz, 2).Value = _
CDate(Application.Substitute(.Cells(zz, 1).Value, "'", ""))
' schreibt einen Text in die Zelle:
.Cells(zz, 3).Value = Application.Substitute(.Cells(zz, 1).Value, "'", "")
Loop
If zz > 5 Then .Cells(6, 2).Resize(zz - 5, 3).NumberFormat = "dd/mm/yy;@"
End With
End Sub
Und hier die Mappe zum Spielen: https://www.herber.de/bbs/user/71122.xls
Die Hochkommata in Spalte A kann man selbst geschrieben haben, damit das Texte sind.
Vielleicht wurden die Werte auch von irgend woher kopiert?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort