Excel VBA eine definierte Shape bewegen?

Hallo Zusammen,

Ich habe in einem File mit zwei Blättern (Genehmigung und Planung) einen Balken (benannt "Datumsbalken"). Dieser ist jeweils auf dem heutigen Tag fixiert.

Jetzt will ich seine Verschiebung anhand des heutigen Datums automatisieren. Ich bringe jedoch das Makro nicht zum laufen. Was ist mein Fehler?

Sub BalkenSchieben3()
 
    Dim Today As Variant
    Dim Last As Variant
    Dim TodaySheet As Variant
    Dim Difference As Variant
    Dim Form As Shape
 
    Set Form = Sheets("Planung").Shapes.Range("Datumsbalken") '(Array("Datumsbalken")) soll die Shape "Datumsbalken" suchen
    Set Today = Date 'Setzt das heutige Datum
    Set Difference = Sheets("Genehmigung").Range("AO3") 'Setzt den Unterschied zwischen letzter Bearbeitung und Heute
    Set TodaySheet = Sheets("Genehmigung").Range("AK3")
    
        If Difference > 0 Then
            For Difference = 1 To Difference 'Die Anzahl Tagesunterschiede (Difference) entscheidet, wie viele Male der Balken verschoben werden soll.
                With Sheets("Planung")
                    Form.Select
                    Selection.ShapeRange.IncrementLeft 21
                End With
                
            Next
            
            Else
        End If
    
    Set Sheets("Genehmigung").Range("AK3") = Today 'Das heutige Datum wird in die Zelle abgespeichert
    Set Sheets("Genehmigung").Range("AM3") = TodaySheet 'Das letzte Bearbeitungsdatum (vorheriges "Heute") wird abgespeichert, damit die nächste Difference berechnet werden kann
 
End Sub

Vielen Dank im Voraus!

Microsoft Excel, Microsoft Office, programmieren, VBA, Formel
Kann mir jemand bei diesem Excel Problem helfen?

Hallo an alle,
Ich habe folgende Aufgabe:

Es geht um Eine Zeiterfassung.
In Spalte B2 wird eine Anfangszeit eingetragen im Format hh:mm. Im Feld C2 wird die Endzeit eingetragen auch im Format hh:mm. Diese zeigen die Arbeitszeit. Die Endzeit kann jedoch auch nach 00:00 Uhr liegen was trotzdem nur die Arbeitszeit verlängert. Im Feld D2 brauche ich die angefangenen halben Stunden zwischen 06:00 Uhr und 22:00 Uhr. Im Feld E2 sollen die angefangenen halben Stunden nach 22:00 Uhr erscheinen. Die Endzeit kann auch nach 00:00 Uhr liegen. Somit wären es bei einer Arbeitszeit von 15:00 Uhr bis 17:15 Uhr zum Beispiel 5 angefangene halbe Stunden im Feld D2 und 0 angefangene halbe Stunden im Feld E2. Bei einer Arbeitszeit von 21:00 Uhr bis 1:45 Uhr wären es somit 2 angefangene halbe Stunden im Feld D2 und 8 angefangene halbe Stunden im Feld E2. Ich brauche die Formeln für die Felder D2 und E2.

Ich habe folgende Formeln bis jetzt:

D2:

=WENN(B2>=C2;0;WENN(C2<=ZEIT(6;0;0);0;WENN(B2>=ZEIT(22;0;0);0;WENN(B2<ZEIT(6;0;0);WENN(C2<=ZEIT(22;0;0);AUFRUNDEN((C2-ZEIT(6;0;0))*48;0);AUFRUNDEN((ZEIT(22;0;0)-ZEIT(6;0;0))*48;0));WENN(C2<=ZEIT(22;0;0);AUFRUNDEN((C2-ZEIT(6;0;0))*48;0);AUFRUNDEN((ZEIT(22;0;0)-MAX(B2;ZEIT(6;0;0)))*48;0))))))

E2:

=WENN(B2>=C2;0;WENN(C2<=ZEIT(6;0;0);AUFRUNDEN((C2-B2)*48;0);WENN(B2>=ZEIT(22;0;0);WENN(C2<=ZEIT(30;0;0);AUFRUNDEN((C2-B2)*48;0);AUFRUNDEN((C2-ZEIT(22;0;0))*48;0));WENN(C2<=ZEIT(22;0;0);AUFRUNDEN((C2-ZEIT(6;0;0))*48;0);WENN(B2<ZEIT(6;0;0);AUFRUNDEN((ZEIT(30;0;0)-B2)*48;0);AUFRUNDEN((C2-ZEIT(22;0;0)+ZEIT(24;0;0))*48;0))))))

Wie ihr am Bild sehen könnt funktioniert diese gut wenn die Anfangszeit vor 22 Uhr liegt und die Endzeit nach 22 Uhr aber VOR 0 Uhr. Sobald beide Zeiten innerhalb von 06:00 Uhr und 22:00 Uhr liegen kommt ein falsches Ergebnis. Und sobald die Endzeit nach 00:00 Uhr liegt wird einfach in beiden Spalten 0 ausgegeben.

Pls help <3

Bild zum Beitrag
Microsoft Excel, Microsoft Office, Formel, Office 365

Meistgelesene Beiträge zum Thema Formel