Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Tage zwischen zwei Datums
13.09.2018 11:46:33
Simone
Hallo Zusammen,
ich habe folgendes Problem:
In Spalte A steht in jeder Zeile ein Zeitraum:
18.12.17 - 05.01.18
ich bräuchte es jetzt so untereinander stehend, er müsste also zeilen einfügen:
18.12.2017
19.12.2017
20.12.2017
21.12.2017
22.12.2017
23.12.2017
24.12.2017
25.12.2017
26.12.2017
27.12.2017
28.12.2017
29.12.2017
30.12.2017
31.12.2017
01.01.2018
02.01.2018
03.01.2018
04.01.2018
05.01.2018
darunter kommt dann nämlich schon der nächste Zeitraum.
Kann mir bei dem komplizieren Problem jemand weiterhelfen?
Lieben Dank im Voraus!
Grüße, Simone

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tage zwischen zwei Datums
13.09.2018 12:54:25
Bernd
Hallo Simone,
schau mal hier... https://support.office.com/de-de/article/datedif-funktion-25dba1a4-2812-480b-84dd-8b32a451b35c
Gruß
Bernd
AW: Tage zwischen zwei Datums
13.09.2018 12:55:05
fcs
Hallo Simone,
hier mein Vorschlag.
Gruß
Franz

Sub Datum_von_bis_aufloesen()
Dim wks As Worksheet
Dim Zeile As Long, Zeile_L As Long
Dim strDatum_von_bis As String, Datum1 As Date, Datum2 As Date, Datum As Date
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
For Zeile = Zeile_L To 2 Step -1 '2 = 1. Zeile mit von-bis-Datum - ggf. anpassen
strDatum_von_bis = .Cells(Zeile, 1).Text
Datum1 = CDate(Trim(Left(strDatum_von_bis, InStr(1, strDatum_von_bis, "-") - 1)))
Datum2 = CDate(Trim(Mid(strDatum_von_bis, InStr(1, strDatum_von_bis, "-") + 1)))
For Datum = Datum2 To Datum1 + 1 Step -1
.Cells(Zeile + 1, 1).EntireRow.Insert
.Cells(Zeile + 1, 1).Value = Datum
Next
.Cells(Zeile, 1).Value = Datum1
Next
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Tage zwischen zwei Datums
13.09.2018 13:01:24
UweD
Hallo Simone
auch noch eine Lösung
Sub datum_ergänzen()
    Dim LR As Long, i As Long, j As Long, Arr, Z As Long
    
    LR = Cells(Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte 
    Columns("b").ClearContents
    
    For i = 1 To LR
        Arr = Split(Cells(i, 1), " - ")
        For j = CDate(Arr(0)) To CDate(Arr(1))
            Z = Z + 1
            Cells(Z, 2) = CDate(j)
        Next
    Next
    
    Columns("A").Delete xlLeft
    
    
End Sub

LG UweD
Anzeige
AW: Tage zwischen zwei Datums
13.09.2018 16:11:18
Günther
Moin Simone,
alle Tage zwischen 2 kalendarischen Daten kannst du auch ohne VBA ausfüllen lassen, wenn auch mit 1 (komplexen) Formel in der Abfragesprache M in Power Query.
Gruß
Günther
AW: Tage zwischen zwei Datums
13.09.2018 16:34:45
Simone
Hallo,
vielen lieben Dank für die Antworten, das ist echt super das man hier unterstützt wird!
Leider bekomm ich es leider trotzdem nicht gebacken :(
Vielleicht hilft eine Beispieldatei?
https://www.herber.de/bbs/user/123930.xlsx
Lieben Dank nochmal!
AW: Tage zwischen zwei Datums
13.09.2018 16:50:33
UweD
Dann so
Modul1
Option Explicit 
 
Sub datum_ergänzen() 
    Dim LR As Long, i As Long, j As Long, Arr, Z As Long 
     
    LR = Cells(Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte 
    Columns("B").ClearContents 
     
    Z = 1 
    For i = 2 To LR 
        If InStr(Cells(i, 1), " - ") = 0 Then 
            Z = Z + 1 
            Cells(Z, 2) = CDate(Cells(i, 1)) 
        Else 
            Arr = Split(Cells(i, 1), " - ") 
            For j = CDate(Arr(0)) To CDate(Arr(1)) 
                Z = Z + 1 
                Cells(Z, 2) = CDate(j) 
            Next 
        End If 
    Next 
    Columns("A").Delete xlLeft 
     
     
End Sub 
LG UweD
Anzeige
AW: Tage zwischen zwei Datums
13.09.2018 22:44:08
fcs
Hallo Simone,
ich hab mein Makro an deine Beispieldatei angepasst, so dass Zeilen, die keinen Bindestrich enthalten übersprungen werden.
Gruß
Franz
Sub Datum_von_bis_aufloesen()
Dim wks As Worksheet
Dim Zeile As Long, Zeile_L As Long
Dim strDatum_von_bis As String, Datum1 As Date, Datum2 As Date, Datum As Date
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
For Zeile = Zeile_L To 2 Step -1 '2 = 1. Zeile mit von-bis-Datum - ggf. anpassen
strDatum_von_bis = .Cells(Zeile, 1).Text
If InStr(strDatum_von_bis, "-") > 0 Then
If IsDate(Trim(Left(strDatum_von_bis, InStr(1, strDatum_von_bis, "-") - 1))) And _
IsDate(Trim(Mid(strDatum_von_bis, InStr(1, strDatum_von_bis, "-") + 1))) Then
Datum1 = CDate(Trim(Left(strDatum_von_bis, InStr(1, strDatum_von_bis, "-") - 1)))
Datum2 = CDate(Trim(Mid(strDatum_von_bis, InStr(1, strDatum_von_bis, "-") + 1)))
For Datum = Datum2 To Datum1 + 1 Step -1
.Cells(Zeile + 1, 1).EntireRow.Insert
.Cells(Zeile + 1, 1).Value = Datum
Next
.Cells(Zeile, 1).Value = Datum1
End If
End If
Next
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Tage zwischen zwei Datums
14.09.2018 07:35:21
Simone
Hallo Franz,
Du bist ja Hammer, kümmerst dich sooo spät noch um die Lösung von meinem Problem!
Tausend Dank, das ist genau das was ich gesucht habe!
Wünsche dir ein schönes Wochenende!
Liebe Grüße, Simone
AW: Tage zwischen zwei Datums
13.09.2018 16:37:35
Simone
Danke Günther, aber Power Query haben wir nicht und darf auch leider nichts installieren

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige