Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

datum zerlegen mit vba

Forumthread: datum zerlegen mit vba

datum zerlegen mit vba
15.01.2016 22:41:50
Thomas
Hallo excelfreunde,
ich sitze gerade vor einer kniffligen aufgabe, dazu finde ich einfach nichts im netz.
Ist es möglich mit vba aus dem
21.2.15 |10.3.15 |test1
dies zu machen?
21.2.15 | 28.2.15 |test1
1.3.15 |10.3.15 |test1
https://www.herber.de/bbs/user/102829.xlsx
kann jemand helfen?
liebe grüsse thomas

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: datum zerlegen mit vba
15.01.2016 23:05:14
Daniel
Hi
ich neheme mal an, dass du für jede Monatsüberschreitung eine Zeile haben willst.
Sub test()
Dim z1 As Long
Dim z2 As Long
Dim löschen As Range
z2 = Cells(Rows.Count, 5).End(xlUp).Row
For z1 = 2 To z2 - 1
With Cells(z1, 5)
'--- prüfen, ob eintrag erweiter werden muss
If Format(.Value, "yyyy-mm") 
Gruß Daniel

Anzeige
AW: datum zerlegen mit vba
15.01.2016 23:08:09
Daniel
sorry, die dritte Spalte vergessen:
Sub test()
Dim z1 As Long
Dim z2 As Long
Dim löschen As Range
z2 = Cells(Rows.Count, 5).End(xlUp).Row
For z1 = 2 To z2 - 1
With Cells(z1, 5)
'--- prüfen, ob eintrag erweiter werden muss
If Format(.Value, "yyyy-mm") 

Anzeige
das ist cool
15.01.2016 23:44:45
Thomas
Hallo Daniel,
das ist richtig Cool. Ich habe es den ganzen Tag schon versucht. Mit Kombi Formel und vba mir tun schon alle Finger weh vom googeln.
Hab schon mal vielen vielen dank für die Lösung die ist super und auch super schnell.
Nur eine kleine sache wäre noch wenn das Macro den Zeitbereich zerlegt übernimmt es die dritte spalte nur für den ersten teil.
13.01.2015 |31.01.2015 |0249-01
01.02.2015 |17.02.2015|
20.05.2015 |31.05.2015 |0036-01
01.06.2015 |04.06.2015
kannst du noch mal schauen?
liebe grüsse thomas

Anzeige
AW: das ist cool
16.01.2016 00:22:10
Thomas
Hallo Luc :-?,
besten dank auch für dein Vorschlag, die Sache mit den udf werde ich mir bestimmt mal runterladen und anschauen.
Aber ich befürchte das ist zwei drei nummern zu gross für mich.
liebe grüsse thomas

AW: das ist cool
16.01.2016 00:51:37
Daniel
Oh sorry.
Da habe ich den Offset beim zweiten einfügen in der Do-Schleife falsch gewählt. Der muss natürlich 2 lauten und nicht 3, denn bei 3 wird ja der Wert aus der vierten Spalte gezogen.
Gruß Daniel

Anzeige
vielen vielen dank an daniel
16.01.2016 01:24:33
Thomas
Hallo Daniel,
es hat super geklappt. Ich habe bis eben versucht es selbst zu finden hoffnungslos.
Aus einer drei eine zwei zumachen hatte ich nicht mal ansatzweise auf den schirm.
Hab vielen vielen dank für deine Uhrzeitlich späte und super schnelle Lösung.
ich freu mich riesig, damit lösen sich meine Probleme in der Datei in Luft auf.
liebe grüsse thomas

Anzeige
Das geht im Prinzip so, ...
15.01.2016 23:43:43
Luc:-?
…Thomas,
hier mal an ZellFmln mit VBA-basierten UDFs demonstriert:
 ABCDEFGH
2821.02.201510.03.2015test121.02.201528.02.2015test1  
29   01.03.201510.03.2015test1  
3015.01.201625.01.2016test215.01.201625.01.2016test2  
31D28:F29: {=VSplit(VSplit(WENN(MONAT(A28)=MONAT(B28);VJoin(A28:B28);A28&" "&DATUM(JAHR(B28);MONAT(B28);1)-1&";"&DATUM(JAHR(B28);MONAT(B28);1)&" "&B28);";")&" "&C28;;1)}
32D30:F30: {=VSplit(VSplit(WENN(MONAT(A30)=MONAT(B30);VJoin(A30:B30);A30&" "&DATUM(JAHR(B30);MONAT(B30);1)-1&";"&DATUM(JAHR(B30);MONAT(B30);1)&" "&B30);";")&" "&C30;;1)}
VJoin (akt Version1.4!) basiert zT auf der vbFkt Join, VSplit auf vbFkt Split, beide sind aber umfassender angelegt und im Archiv vorhanden (in aktueller Version in einer BspMappe). Du könntest sie auch in einer SubProzedur verwenden, denn die alte Zeile muss ja noch gelöscht und das neue Ergebnis unten angefügt wdn.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
Wo kommt der Daniel plötzlich her...? ;-] owT
15.01.2016 23:45:57
Luc:-?
:-?
;
Anzeige

Infobox / Tutorial

Datum zerlegen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um ein Datum in Excel mit VBA zu zerlegen, kannst du folgende Schritte befolgen:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub test()
       Dim z1 As Long
       Dim z2 As Long
       z2 = Cells(Rows.Count, 5).End(xlUp).Row
       For z1 = 2 To z2 - 1
           With Cells(z1, 5)
               '--- prüfen, ob Eintrag erweitert werden muss
               If Format(.Value, "yyyy-mm") <> Format(.Offset(1, 0).Value, "yyyy-mm") Then
                   .Offset(1, 0).Value = .Offset(0, 0).Value
               End If
           End With
       Next z1
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.

  6. Führe das Makro aus, indem du auf Entwicklertools > Makros klickst und das test-Makro auswählst.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht wie erwartet.

    • Lösung: Stelle sicher, dass die Daten in der Spalte, die du verwendest, im richtigen Datumsformat vorliegen.
  • Fehler: Es werden nicht alle Datumswerte verarbeitet.

    • Lösung: Überprüfe die Schleifenbedingungen im Code. Möglicherweise musst du die Endzeile (z2) anpassen.

Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du auch Formeln nutzen:

  1. Verwende die Funktion TEXT:

    =TEXT(A1,"dd.mm.yyyy")
  2. Nutze die DATUM-Funktion zur Zerlegung:

    =DATUM(JAHR(A1), MONAT(A1), TAG(A1))

Diese Methode ist einfacher, erfordert jedoch mehr manuelle Eingaben und ist nicht so flexibel wie VBA.


Praktische Beispiele

Hier sind zwei Beispiele, wie du verschiedene Datumsformate in Excel zerlegen kannst:

  1. Beispiel 1: Zerlegungen für Monatsüberschreitungen

    • Wenn du Daten wie 21.02.2015 | 10.03.2015 | test1 hast, kannst du mit dem oben genannten VBA-Code die Monate in separate Zeilen aufteilen.
  2. Beispiel 2: Nutzung von Formeln zur Extraktion

    • Wenn du =TEXT(A1,"dd") in einer Zelle verwendest, erhältst du den Tag des Datums in A1.

Tipps für Profis

  • Verwende UDFs (benutzerdefinierte Funktionen) in VBA, um komplexe Berechnungen effizienter zu gestalten.
  • Optimiere deinen VBA-Code mit Fehlerbehandlungsmechanismen, um unerwartete Fehler zu vermeiden.
  • Halte deinen Code modular, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Frage: Kann ich dieses VBA-Makro in jeder Excel-Version verwenden?
Antwort: Ja, das VBA-Makro sollte in den meisten Excel-Versionen funktionieren, solange sie VBA unterstützen.

2. Frage: Was ist der Vorteil von VBA gegenüber Formeln?
Antwort: VBA ermöglicht eine automatisierte und wiederholbare Verarbeitung von Daten, während Formeln oft manuell eingegeben werden müssen.

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