Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum in serielle Zahl umwandeln

Datum in serielle Zahl umwandeln
reiner
Hallo Leute,
https://www.herber.de/bbs/user/79377.xls
in der Beispieldatei ist Zelle "A10" Text-Formatiert. Das in dieser Zelle hinterlegte Datum soll in eine serielle Zahl umgewandelt werden mit dem mitgesandten Makro. Da die Zelle aber nicht "Datum-Formatiert" ist, errechnet sich natürlich eine falscher Wert für die serielle Zahl.
Das Makro soll in einer umfangreichen Tabelle mit Datumsangaben in ausschließlich "Text-Formatierten" Zellen eingesetzt werden ohne Formatänderungen an den Zellen vorzunehmen.
Wie muss das Makro abgeändert werden damit ein Datum trotz "Text-Formatierter" Zelle in eine serielle Zahl umgewandelt werden kann?
mfg
reiner
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datum in serielle Zahl umwandeln
15.03.2012 13:18:27
hary
Hallo reiner

DatumTabelle = CLng(CDate(ActiveSheet.Cells(10, 1)))

gruss hary
AW: so ist es einfacher
15.03.2012 13:45:08
hary
Hallo nochmal

Private Sub test()
If CDate(ActiveSheet.Cells(10, 1)) > CDate(Date) Then
MsgBox "Richtig"
Else
MsgBox "Falsch"
End If
End Sub

gruss hary
Anzeige
AW: so ist es einfacher
15.03.2012 14:01:19
reiner
danke Hary
mfg
reiner
so ist es noch einfacher
15.03.2012 19:30:53
Erich
Hallo Hary,
warum sollte man mit CDate aus einem Date ein Date machen wollen? Das erscheint mir kaum sinnreich...
Mein Vorschlag:

Option Explicit    ' immer zu empfehlen!
Private Sub test()
If CDate(ActiveSheet.Cells(10, 1)) > Date Then
MsgBox "Richtig"
Else
MsgBox "Falsch"
End If
' oder einfach:
MsgBox IIf(CDate(ActiveSheet.Cells(10, 1)) > Date, "Richtig", "Falsch")
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datum in serielle Zahl umwandeln


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade deine Datei mit den Datumsangaben, die als Text formatiert sind.

  2. Öffne den Visual Basic for Applications (VBA) Editor mit ALT + F11.

  3. Erstelle ein neues Modul:

    • Klicke auf EinfügenModul.
  4. Füge den folgenden VBA-Code ein:

    Option Explicit
    
    Sub DatumInZahlUmwandeln()
        Dim DatumTabelle As Long
        DatumTabelle = CLng(CDate(ActiveSheet.Cells(10, 1)))
        MsgBox "Serielle Zahl: " & DatumTabelle
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Datei.

  6. Führe das Makro aus, indem du auf EntwicklertoolsMakros klickst und DatumInZahlUmwandeln auswählst.

  7. Überprüfe die Ausgabe in der MsgBox, die die serielle Zahl des Datums anzeigt.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    • Lösung: Stelle sicher, dass die Zelle tatsächlich ein Datum im Textformat enthält.
  • Fehler: "Ungültiges Datum"
    • Lösung: Überprüfe das Format des Textes in der Zelle. Das Datum muss in einem erkennbaren Format vorliegen.
  • Fehler: Makro läuft nicht
    • Lösung: Aktiviere die Makros in Excel unter DateiOptionenTrust CenterEinstellungen für das Trust Center.

Alternative Methoden

  1. Verwendung von Excel-Formeln:

    • Du kannst die Funktion =DATUMWERT() verwenden, um ein Datum aus einem Text zu generieren. Beispiel: =DATUMWERT(A10) gibt das Datum zurück.
  2. Excel VBA für mehrere Zellen:

    • Um mehrere Zellen in eine serielle Zahl umzuwandeln, verwende eine Schleife:
    Sub MehrereDatenUmwandeln()
        Dim i As Integer
        For i = 1 To 10 'Anpassen der Range
            ActiveSheet.Cells(i, 2).Value = CLng(CDate(ActiveSheet.Cells(i, 1)))
        Next i
    End Sub

Praktische Beispiele

  • Beispiel 1: Wenn in Zelle A10 der Text "01.01.2023" steht, wird durch den VBA-Code die serielle Zahl 44927 erzeugt.
  • Beispiel 2: Bei der Umwandlung von "15.08.2022" in Zelle A5 erhältst du die serielle Zahl 45029.

Tipps für Profis

  • Um fortlaufende Zahlen in Datum umwandeln zu können, kannst du die Funktion =A1+DATE(1900,1,1)-1 nutzen, wobei A1 die serielle Zahl ist.
  • VBA optimieren: Bei großen Datenmengen kann es sinnvoll sein, Application.ScreenUpdating = False am Anfang des Makros zu setzen, um die Geschwindigkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich ein Datum in Zahl umrechnen?
Verwende die Funktion =DATUMWERT() oder ein VBA-Skript, wie im Tutorial beschrieben.

2. Was mache ich, wenn das Datum nicht erkannt wird?
Überprüfe das Format des Textes und stelle sicher, dass es in einem von Excel unterstützten Datumsformat vorliegt.

3. Kann ich Excel-Zahlen in Datumsformat umwandeln?
Ja, du kannst die serielle Zahl direkt in ein Datumsformat umwandeln, indem du die Zelle entsprechend formatierst oder eine Formel verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige