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

Datum per VBA zusammensetzen

Forumthread: Datum per VBA zusammensetzen

Datum per VBA zusammensetzen
16.09.2020 10:30:47
Marco
Hallo,
mich plagt ein neues Problem. Bisher konnte ich immer die Datum() Funktion nutzen, um aus Jahr/Monat/Jahr ein Datum zu erzeugen. Nun habe ich aber eine dynamische Tabelle und es wäre super, wenn mir jemand den entsprechenden VBA Code zeigen könnte. Konnte über die Suche leider nur Beiträge zur Datum() Funktion finden.
Beispieldatei ist im Anhang. Tabelle1 ist die Ausgangslage, Tabellle2 das zu erzeugende Ergebnis. Wichtig ist, dass beliebig viele Teile (=Spalten) vorkommen können.
Kurze Beschreibung:
Tabelle1 enthält die Daten, welche zusammengefügt werden sollen in der Form beginnend bei Spalte M. Jede Spalte enthält die 3 Werte Tag, Monat und Jahr in verschiedenen Zellen (Zeilen 9-11).
Für jedes existierende Datum in Tabelle1 soll es nun zusammengesetzt werden und am besten gleich transponiert in eine Spalte in Tabelle2 kopiert werden.
https://www.herber.de/bbs/user/140259.xlsm
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
in VBA =Dateserial(Year, Month, Day) owT
16.09.2020 10:34:27
Rudi
AW: in VBA =Dateserial(Year, Month, Day) owT
16.09.2020 10:54:22
Marco
Hi,
und wie iteriere ich am besten über die Spalten, sodass diese nacheinander abgearbeitet werden bei dynamischer Spaltenanzahl? Sorry bin bei VBA nicht sonderlich bewandert.
AW: in VBA =Dateserial(Year, Month, Day) owT
16.09.2020 11:28:21
Günther
Moin,
wenn du in VBA "nicht so bewandert" bist solltest du vielleicht einmal über die Möglichkeiten deiner Version (Power Query) nachdenken. Das lässt sich deutlich leichter erlernen und du kommst wahrscheinlich *) mit wenigen Mausklicks und einer einzigen Formel aus.
*) Da ich keine VBA-verdächtigen Files herunterlade, kann ich das "nur" vermuten.
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Datum in Excel per VBA oder Power Query zusammensetzen


Schritt-für-Schritt-Anleitung

Um ein Datum in Excel per VBA zu erstellen, kannst du die DateSerial-Funktion verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf „VBAProject (deinArbeitsblatt)“ und wähle „Einfügen“ > „Modul“.
  3. Füge den folgenden Code ein:

    Sub DatumZusammensetzen()
       Dim ws1 As Worksheet, ws2 As Worksheet
       Dim i As Long, j As Long
       Dim Tag As Integer, Monat As Integer, Jahr As Integer
       Dim ZielRow As Long
    
       Set ws1 = ThisWorkbook.Sheets("Tabelle1")
       Set ws2 = ThisWorkbook.Sheets("Tabelle2")
       ZielRow = 1
    
       ' Iteriere über die Spalten
       For i = 13 To ws1.Cells(9, ws1.Columns.Count).End(xlToLeft).Column
           ' Lese die Werte Tag, Monat und Jahr
           Tag = ws1.Cells(9, i).Value
           Monat = ws1.Cells(10, i).Value
           Jahr = ws1.Cells(11, i).Value
    
           ' Setze das Datum zusammen
           ws2.Cells(ZielRow, 1).Value = DateSerial(Jahr, Monat, Tag)
           ZielRow = ZielRow + 1
       Next i
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle DatumZusammensetzen aus und klicke auf „Ausführen“.

Mit diesem VBA-Code wird das Datum aus den Zellen in Tabelle1 erstellt und in Tabelle2 transponiert.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Stelle sicher, dass die Zellen mit Tag, Monat und Jahr als Zahlen formatiert sind.
  • Fehler: "Überlauf"

    • Überprüfe, ob die Werte für Tag, Monat und Jahr im gültigen Bereich liegen (z.B. Tag zwischen 1 und 31, Monat zwischen 1 und 12).

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch Power Query verwenden, um Daten zusammenzusetzen:

  1. Daten in Power Query laden:

    • Wähle die Daten in Tabelle1 aus und gehe zu „Daten“ > „Aus Tabelle/Bereich“.
  2. Spalten kombinieren:

    • Verwende die Merge Columns-Funktion, um die Spalten für Tag, Monat und Jahr zu kombinieren.
  3. Datum transformieren:

    • Verwende die Date.FromText-Funktion, um das kombinierte Datum in ein Datumsformat zu konvertieren.

Praktische Beispiele

  1. Excel Datum aus drei Zellen zusammensetzen:

    • Angenommen, die Zellen A1, B1 und C1 enthalten Tag, Monat und Jahr. Du kannst die folgende Formel verwenden:
      =DATUM(C1;B1;A1)
  2. Excel Datum aus Tag, Monat und Jahr:

    • Wenn du die Werte in den Zellen A2 (Tag), B2 (Monat) und C2 (Jahr) hast, ist die Formel:
      =DATUM(C2;B2;A2)

Tipps für Profis

  • Nutze die VBA DateSerial-Funktion für eine saubere und fehlerfreie Datumserstellung.
  • Denke daran, deine Makros zu speichern, um sie später wieder verwenden zu können.
  • Teste deine VBA-Skripte mit verschiedenen Datensätzen, um sicherzustellen, dass sie robust sind.

FAQ: Häufige Fragen

1. Wie kann ich ein Datum aus Jahr, Monat und Tag in Excel erstellen?
Du kannst die DATUM-Funktion verwenden, um ein Datum aus Jahr, Monat und Tag zu erstellen. Zum Beispiel: =DATUM(Jahr; Monat; Tag).

2. Was ist der Unterschied zwischen VBA und Power Query für die Datumsbearbeitung?
VBA bietet mehr Flexibilität und Automatisierungsmöglichkeiten, während Power Query eine benutzerfreundliche Oberfläche für Datenmanipulationen bietet, ohne Programmierung.

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