Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum zwischen Anfangs- und Enddatum auffüllen

Forumthread: Datum zwischen Anfangs- und Enddatum auffüllen

Datum zwischen Anfangs- und Enddatum auffüllen
08.10.2012 04:51:15
Kasimir
Hallo an alle Helfenden!
Ich hatte vor geraumer Zeit mal eine Formel oder ein Makro gefunden, welches mir zwischen einen Anfangs- und Enddatum in regelmäßigen oder unregelmäßigen Abständen Datumswerte schreibt. Was ich meine mal an einem Beispiel:
Anfangsdatum: 01.10.2012
Enddatum: 31.10.2012
Tabelle1

 AB
1 Datum
2Anfangsdatum:01.10.2012
3aufgefülltes Datum04.10.2012
4aufgefülltes Datum07.10.2012
5aufgefülltes Datum10.10.2012
6aufgefülltes Datum13.10.2012
7aufgefülltes Datum16.10.2012
8aufgefülltes Datum19.10.2012
9aufgefülltes Datum22.10.2012
10aufgefülltes Datum25.10.2012
11aufgefülltes Datum28.10.2012
12Enddatum:31.10.2012


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Wie im Beispiel zu sehen, soll im Abstand zwischen dem Anfangs- und Enddatum Datumswerte in Abständen von 3 Tagen aufgefüllt werden.
Weiß jemand, wie ich das am Einfachsten realisieren kann. Ich hatte, wie bereits eingangs erwähnt, so etwas schon mal gefunden, weiß nur nicht mehr wo.
Danke Euch schon mal im Voraus,
Kasimir

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datum zwischen Anfangs- und Enddatum auffüllen
08.10.2012 07:32:04
Hans
Hallo Kasimir,
wie folgt:
Sub PrintDates() Dim lStart As Long, lEnd As Long, lDay As Long Dim iInt As Integer Dim iCol As Integer, iRow As Integer iInt = 3 iCol = 2 iRow = 1 lStart = CLng(Range("A1").Value) lEnd = CLng(Range("A2").Value) For lDay = lStart To lEnd Step iInt Cells(iRow, iCol).Value = CDate(lDay) iRow = iRow + 1 Next lDay End Sub Gruss hans

Anzeige
AW: Datum zwischen Anfangs- und Enddatum auffüllen
08.10.2012 08:30:27
UweD
Hallo
Annahme Daten stehen direkt untereinander,
Zeilen werden eingefügt:
Sub Datum_aufteilen()
On Error GoTo Fehler
Dim TB, Sp%, R1%, i%, Teiler%, Diff%, Anz%
Dim Start, Ende As Date
Set TB = ActiveSheet
Sp = 2 'Spalte B
R1 = 1 'Erste Zeile
Teiler = InputBox("Abstand?", , 3)
Application.ScreenUpdating = False
With TB
Start = TB.Cells(R1, Sp)
Ende = TB.Cells(R1 + 1, Sp)
Diff = Ende - Start
If Diff Mod Teiler  0 Then
MsgBox "Keine gleichmäßige Aufteilung möglich"
Exit Sub
End If
For i = (Diff / Teiler) - 1 To 1 Step -1
.Rows(R1 + 1).Insert xlDown
.Cells(R1 + 1, Sp).Value = Start + i * Teiler
Next
End With
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Gruß UweD

Anzeige
AW: Datum zwischen Anfangs- und Enddatum auffüllen
08.10.2012 20:15:56
Kasimir
Hallo an Alle!
Sorry, dass ich erst so spät reagiere, aber der Arbeitstag war hart und lange. Ich danke Euch für Eure Vorschläge. Ich werde diese in den nächsten Tagen testen. Sollte ich noch Fragen dazu haben, werde ich mich wieder melden. Bis dahin noch eine schöne Woche.
MfG
Kasimi

Anzeige
noch zwei Makros
08.10.2012 13:28:45
Erich
Hi Kasimir,
wo sollen Anfangs- und Enddatum und die Schrittweite vorgegeben werden?
Hier mal zwei weitere VBA-Makro-Versionen:
 ABCD
1Start01.10.2012  
2Ende20.10.2012  
3Intervall-Tage3  
4Ausgabe abA7  
5    
6DatumslisteEDatumslisteVDiffEDiffV
701.10.201201.10.2012  
804.10.201204.10.201233
907.10.201206.10.201232
1010.10.201209.10.201233
1113.10.201212.10.201233
1216.10.201215.10.201233
1319.10.201217.10.201232
1420.10.201220.10.201213

Formeln der Tabelle
ZelleFormel
C8=A8-A7
D8=B8-B7


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
In den Spalten C und D siehst du die Differenzen zwischen den Tagen in A und B.
Welche Version brauchst du?
Und hier die Codes dazu:

Option Explicit
Sub DatumslisteE()
Dim arrD() As Date, ii As Long
ReDim arrD(1 To 1 + Int((Cells(2, 2) - Cells(1, 2) + Cells(3, 2) - 1) / Cells(3, 2)), 0)
For ii = 1 To UBound(arrD)
arrD(ii, 0) = Application.Min(Cells(1, 2) + (ii - 1) * Cells(3, 2), Cells(2, 2))
Next ii
With Range(Cells(4, 2)).Resize(UBound(arrD))
.NumberFormatLocal = "TT.MM.JJJJ"
.Value = arrD
End With
End Sub
Sub DatumslisteV()
Dim arrD() As Date, dblD As Double, ii As Long
ReDim arrD(1 To 1 + Int((Cells(2, 2) - Cells(1, 2) + Cells(3, 2) - 1) / Cells(3, 2)), 0)
dblD = (Cells(2, 2) - Cells(1, 2)) / (UBound(arrD) - 1)
For ii = 1 To UBound(arrD)
arrD(ii, 0) = Application.Round(Cells(1, 2) + (ii - 1) * dblD, 0)
Next ii
With Range(Cells(4, 2)).Offset(, 1).Resize(UBound(arrD))
.NumberFormatLocal = "TT.MM.JJJJ"
.Value = arrD
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datum zwischen Anfangs- und Enddatum auffüllen in Excel


Schritt-für-Schritt-Anleitung

Um Datumswerte zwischen einem Anfangs- und Enddatum aufzufüllen, kannst Du die folgende VBA-Makro-Anleitung verwenden. Stelle sicher, dass die Daten in den Zellen A1 (Anfangsdatum) und A2 (Enddatum) eingegeben sind.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub PrintDates()
    Dim lStart As Long, lEnd As Long, lDay As Long
    Dim iInt As Integer
    Dim iCol As Integer, iRow As Integer
    iInt = 3 ' Abstand in Tagen
    iCol = 2 ' Spalte B
    iRow = 1 ' Erste Zeile
    lStart = CLng(Range("A1").Value)
    lEnd = CLng(Range("A2").Value)

    For lDay = lStart To lEnd Step iInt
        Cells(iRow, iCol).Value = CDate(lDay)
        iRow = iRow + 1
    Next lDay
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro PrintDates auswählst und auf Ausführen klickst.

Jetzt sollten die Datumswerte in Abständen von 3 Tagen zwischen dem Anfangs- und Enddatum automatisch in Spalte B ausgefüllt werden.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Lösung: Stelle sicher, dass die Zellen A1 und A2 korrekt als Datum formatiert sind.
  • Fehler: "Das Makro konnte nicht ausgeführt werden"

    • Lösung: Überprüfe, ob Makros in den Excel-Optionen aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Makroeinstellungen.
  • Fehler: "Keine gleichmäßige Aufteilung möglich"

    • Lösung: Dies tritt auf, wenn die Differenz zwischen den Datumswerten nicht durch den gewählten Abstand teilbar ist. Überprüfe die Werte und passe den Abstand an.

Alternative Methoden

Eine weitere Möglichkeit, das Datum zwischen Anfangs- und Enddatum aufzufüllen, ist die Verwendung von Excel-Formeln:

  1. Gib das Anfangsdatum in Zelle A1 und das Enddatum in A2 ein.
  2. In Zelle B1 schreibe die Formel:
    =A1
  3. In Zelle B2 schreibe die Formel:
    =WENN(B1+3<=$A$2;B1+3;"")
  4. Ziehe die Formel in B2 nach unten, um die gewünschten Datumswerte zu generieren.

Praktische Beispiele

Beispiel 1:

  • Anfangsdatum: 01.10.2012
  • Enddatum: 31.10.2012

Die oben beschriebene Methode mit dem Makro erzeugt folgende Datumswerte in Spalte B:

  • 01.10.2012
  • 04.10.2012
  • 07.10.2012
  • ... und so weiter bis 31.10.2012.

Beispiel 2: Verwende die Formel-Methode, um die Datumswerte in regelmäßigen Abständen aufzufüllen, und passe die Schrittweite in der Formel an.


Tipps für Profis

  • Experimentiere mit verschiedenen Abständen, indem Du den Wert von iInt im VBA-Code veränderst.
  • Schütze Dein Arbeitsblatt, um versehentliche Änderungen an den Makros zu vermeiden.
  • Verwende die Debug.Print-Anweisung im Code, um den Ablauf des Makros zu verfolgen und sicherzustellen, dass die Daten korrekt verarbeitet werden.

FAQ: Häufige Fragen

1. Kann ich den Abstand zwischen den Datumswerten ändern? Ja, ändere den Wert von iInt im Makro, um den gewünschten Abstand einzustellen.

2. Funktioniert das Makro in allen Excel-Versionen? Das Makro sollte in den meisten modernen Excel-Versionen (Excel 2010 und später) funktionieren.

3. Was mache ich, wenn die Daten nicht korrekt eingegeben sind? Überprüfe die Zellen A1 und A2 auf die korrekte Datumsformatierung und stelle sicher, dass die Werte gültig sind.

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