Clever-Excel-Forum

Normale Version: Zeitraum auslesen und Tagesscharf wieder geben :)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe mich schon länger nicht mehr blicken lassen aber nun reichen YouTube Videos doch nicht mehr aus :)

Ich würde gerne eine Liste erstellen für die Urlaubs und Krankenvertretung in Fremdleistung...
Meine Idee ist, dass ich eine Userform erstelle wo das Startdatum und das Enddatum der Vertretung eingetragen wird und noch einigen andere daten wie Name wochentag usw...

Sobald dann ein Button betätigt wird hätte ich gerne, dass Excel den Zeitraum erkennt und für jeden Tag eine Zeile verwendet wo alle Daten stehen.

Ich hoffe man kann mir folgen ? :D Habe noch keine Beispieldatei da ich erstmal wissen wollte ob dies überhaupt möglich ist :)

Beispiel:

In Userform 09.05.2022 - 16.05.2022 Peter Krankheit Bahnhof Asshausen 06:00 - 14:30 KRW

In der Tabelle

Mo 09.05.2022 Peter Krankheit Bahnhof Asshauen 06:00 - 14:30 KRW
Di 10.05.2022 Peter Krankheit Bahnhof Asshauen 06:00 - 14:30 KRW
Mi 11.05.2022 Peter Krankheit Bahnhof Asshauen 06:00 - 14:30 KRW
Do 12.05.2022 Peter Krankheit Bahnhof Asshauen 06:00 - 14:30 KRW

Usw :)

Vielen Dank für die Hilfe.
Hi,

klar ist das möglich. Aber ob da extra eine Userform notwendig ist, das Stelle ich mal in Frage. Scheint mir wohl eher ein Annäherungsversuch an VBA zu sein... :)
In dem Fall empfehle ich erstmal sich die Basics der Programmierung anzueignen.
Hallo,

ohne UserForm, aber mit zwei Sheets, könnte es so oder so ähnlich gehen:

Code:
Sub F_en()
Dim Tx As String, Tage As String, Datum

With Sheets("Eingabe")
    lr = .Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To lr
        If .Cells(i, 2) = "x" Then GoTo NN
        Tx = Cells(i, 1)
        For b = 1 To Len(Tx)
            If Mid(Tx, b, 1) Like "[A-Za-z]" Then Exit For
        Next b
        Tage = Left(Tx, b - 1)
        Tx = Mid(Tx, b)
        Datum = Split(Tage, "-")
        lr2 = Sheets("Liste").Cells(Rows.Count, 1).End(xlUp).Row
        For d = CLng(CDate(Datum(0))) To CLng(CDate(Datum(1)))
            lr2 = lr2 + 1
            Sheets("Liste").Cells(lr2, 1) = d
            Sheets("Liste").Cells(lr2, 1).NumberFormat = "m/d/yyyy"
            Sheets("Liste").Cells(lr2, 2) = Tx
        Next d
        .Cells(i, 2) = "x"
NN:
    Next i
    
End With
End Sub

mfg