Ich habe eine Excel-Tabelle mit den Spalten "Startzeitpunkt"und "Endzeitpunkt", und will mir in eine dritte Spalte "Auslastung" die monatliche Auslastung schreiben.
In Excel funktioniert das schon ganz gut, ich Rechne einfach:
=(B2-B1)/[Anzahl der Tage im Monat]
und formatiere das dann als Prozentzahl.
Weil das Ganze aber automatisiert werden soll versuche ich das gleiche in VBA zu erreichen, schaffe es aber aus irgendeinem Grund nicht. Wenn ich es auf folgende Art und Weise versuche kommt zwar eine Zahl raus, aber nicht die korrekte. Ich nehme an, dass mein Fehler irgendwie bei den Datentypen liegt, kenne mich aber zu wenig aus um auf die Lösung zu kommen:
(an dieser Stelle möchte ich nur anmerken, dass meine VBA-Kenntnisse rudimentär sind, also bitte nicht beim Anblick meines Lösungsansatzes an den Kopf fassen...)
Dim workload As Double
Dim date_start As Double
Dim date_end As Double
date_start = CDate(Cells(i + 1, 1))
date_end = CDate(Cells(i + 1, 2))
workload = (date_end - date_start) / CDbl(Day(DateSerial(Year(Cells(i + 1, 1)), month(Cells(i + 1, 1)) + 1, 0)))
Cells(i + 1, 3).Value = workload
Cells(i + 1, 3).NumberFormatLocal = "0,00 %"
Das ganze befindet sich in einer for-Schleife, daher das "i + 1"
Ich hoffe es kann mir jemand helfen! Vielen Dank!