Makro nur über "UserForm" ausführen startbar
19.08.2015 20:56:47
Vivi
ich bin derzeit dabei, ein Makro zu schreiben, das automatisch alle Differenzen zwischen verschiedenen Datumsangaben berechnet und ausgibt. Die Daten stehen in meiner Datei immer in Spalte 5 (also E) und sind in amerikanischem Datumsformat angegeben.
Da sich die Anzahl der Daten mit jeder Datei ändern kann (mal gibt es 11 Einträge, mal 400), lasse ich den User vorher angeben, wie viele Datensätze er gerade anschaut (in der Textbox "DataQuant"). Daraufhin soll das Makro Spalte E durchgehen und für jede zwei untereinander stehende Daten die jeweilige Differenz ausgeben (rollierend bis es zur letzten Zeile kommt).
Hintergrund ist die Berechnung einer Mean Time Between Failure Kennzahl, falls das zum Verständnis hilft.
Mein Code sieht derzeit folgendermaßen aus:
Sub MTBF()
Dim quantity As Double, row As Long, i As Long, c As Long
quantity = Val(ThisWorkbook.Sheets("Commands").DataQuant.Text)
row = 1
For i = 2 To quantity - 1 Step 1
c = DateDiff("d", Cells(i, 5), Cells((i + 1), 5))
row = row + 1
ThisWorkbook.Worksheets("Data").Cells(row, 16) = c
c = c + 1
Next i
End Sub
Nun zum eigentlichen Problem: Das Makro soll ausgeführt werden, wenn der User auf einen CommandButton klickt. Es läuft zwar ohne Probleme durch, gibt aber nur 0 als Ergebnis der Differenzen zwischen den Daten aus. Er berechnet es aber dann richtig, wenn man das Makro über den Quellcode startet (also über diesen grünen Play-Pfeil namens "Sub/UserForm ausführen". Woran liegt das? Wie krieg ich das gelöst?
Vielen Dank und liebe Grüße!