[VBA] Hilfe bei Excel Code?

3 Antworten

Bin leider nicht in der Lage, alles wirklich nachzuvollziehen. Was mir aber auffällt, dass Du M_Zeit als String deklarierst, dazu aber Zeit (ebenfalls als String) addieren willst.

Wenn mich mein Gefühl nicht täuscht, dürfte das nicht gehen! Vllt würde das mit CSng(M_Zeit) oder was ähnlichen gehen, hab solche Umwandlungen noch nicht praktiziert. (immer nur CStr  oder Cdbl aus anderen Formaten)

Wenns das nicht ist, weiß ich auch nicht weiter!

M_Zeit ist was anderes. Das spiegelt nicht die Stunden wieder sondern einen Zeitnachweis als String. Das mit dem String addieren funktioniert bei mir sogar, aber trotzdem danke für den Tipp.

M_vorbereitung, M_termin, M_recherche, M_aktenstudium und M_recherche sind die fraglichen Variablen, die nicht richtig aufaddiert werden.

0

Müsstest nicht innerhalb der fraglichen Codezeilen die gefundenen Werte aufaddieren? Stattdessen weist sie immer wieder denselben Variablen zu.

Lass doch mal einen Debugger laufen, der Dir schrittweise die Werte ausgibt, dann wirst sehen, an welcher Stelle es klemmt.

Zeilen 146 - 152 benutze ich die Add-Methoden um die Werte aufzuaddieren.

0
@ChrisFragtGern

curHour, ist die einzige Variable die richtig aufaddiert wird. Und bei den anderen Variablen mache ich ja eigentlich nichts anderes bis auf die if-Abfrage.

0
@ChrisFragtGern

Wäre es möglich, dass teilweise undefinierte Werte bekommst, weil die Variablen nirgendwo initialisierst?

1
@MatthiasHerz

Nachtrag:

Ich lese gerade, Du hast das selbst schon herausbekommen.

Für die Zukunft solltest Dir merken, dass Variablen immer initialisieren musst, wenigstens die, die definierte Werte ergeben sollen. Ohne diese Wertzuweisung steht irgend etwas in den fraglichen Speicherzellen, was nicht zwangsweise Null sein muss.

1

Hab es selber hinbekommen. Musste in fraglicher Codezeile alle Variablen wieder auf 0 setzen bevor ich in die If-Abfragen gehe. Also:

Vorbereitung = 0
Aktenstudium = 0
Termin = 0
Recherche = 0
Gutachten = 0

If InStr(sheet.Cells(row,4), "GG: Vorbereitung Termin")>0 Then
Vorbereitung = Val(sheet.Cells(row,7))
End If

...

DH für die Aufklärung! (leider sehr selten geworden!)

1

Was möchtest Du wissen?