Text in Zahlen umwandeln mit VBA

Text in Zahlen umwandeln - manuell

In einem meiner früheren Post habe ich bereits ein Makro hierfür gepostet ➡ Text in Zahlen umwandeln. Bei diesem Makro wird der zu formatierende Bereich dynamisch ermittelt. Es wird der Bereich A4 bis zu letzten beschriebenen Zelle in eine Zahl umgewandelt, anstatt dies manuell über den grünen Pfeil vorzunehmen, geht das bequem über das Makro.

Sub text_in_zahl()
    'Das Makro wandelt Text in Zahlen um
   
    Sheets("Tabelle1").Select
    
    ' Die letzte beschriebene Zelle wird ermittelt
    Dim loletzte As Long
    loletzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    With Range("a4" & ":a" & loletzte)
        .NumberFormat = "General"
        .Value = .Value
    End With
End Sub

Möchte man die so umgewandelten Zahlen z.B. in ein Datum umwandeln, könnt ihr dieses Makro nutzen:

Sub datum_formatieren()

' Formatiert Zahlen in das Datumsformat mm.dd.yyyy

'
Application.ScreenUpdating = False

    Sheets("Tabelle1").Select
    
    Dim loletzte As Long
    loletzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

    Range("a4" & ":a" & loletzte).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "m/d/yyyy"
    Application.CutCopyMode = False
    
End Sub

Datum aus Kalenderwoche ermitteln

Datum aus Kalenderwoche ermitteln

Manchmal ist es ganz hilfreich, wenn man ausgehend von einer Kalenderwoche das Datum für einen definierten Tag in dieser ermitteln kann. Eine kleine Excel Formel kann das:

=DATUM(g1;1;1)+(g2-WENN(WOCHENTAG(DATUM(g1;1;1);2)>4;0;1))*7+g3-1+1-WOCHENTAG(DATUM(g1;1;1)+(g2-WENN(WOCHENTAG(DATUM(g1;1;1);2)>4;0;1))*7;2)

Hier die Erklärung zur Formel:

Datum aus Kalenderwoche ermitteln
Datum aus Kalenderwoche ermitteln

Die Formel gibt das Datum des 5ten Tages der Kalenderwoche zurück. Soll der erste Tag der jeweiligen Kalenderwoche als Datum ausgegeben werden, muss die Zahl gegen eine 1 ersetzt werden. Die Jahreszahl muss zudem zwingend angegeben werden, in unserem Beispiel 2013.