| 

.NET C# Java Javascript Exception

1
Hi, ich schreibe mir aktuell ein kleinen "Programm" zur Arbeitszeiterfassung.

Bisher war alles simpel gestrickt über Zellenformeln, nun möchte ich (auch bzw vor allem für Lernzwecke) alles VBA umschreiben. Es funktioniert schon sehr gut, ich scheitere allerdings dabei Uhrzeiten in VBA in Dezimalzahlen umzurechnen und in eine Zelle zu schreiben.

.Cells(Zeile, 8).FormulaLocal = "=" & _
"WENN(E" & Zeile & "=""Feiertag"";(KonfigStundenArbeitstag);" & _
"WENN(C" & Zeile & "="""";(KonfigStundenArbeitstag);" & _
"WENN(C" & Zeile & ">=""00:00"";" & _
"(SUMME(D" & Zeile & "-C" & Zeile & ")-GANZZAHL(D" & Zeile & "-C" & Zeile & "))*24-G" & Zeile & "*24)))"


Das ist mein bisheriger Excel-Code und in dieser Form funktioniert es auch. Ich will aber nun anstelle der Formel, die Berechnung zuvor über VBA erledigen. Hab schon alles mögliche zur Zeit-/Datumsumrechnung probiert, aber immer ohne Erfolg. Immer Fehler "Typen unverträglich".

In Spalte C, D und G (3, 4 und 7) stehen Werte im Format hh:mm - in der Spalte H (8) werden die Gesamtstunden als Dezimalzahl mit zwei Nachkommastellen ausgegeben.

Wichtig ist mir vor allem die unterste Zeile "(SUMME(D...", hier wird die Standardformel "Endzeit-Anfangszeit-Pause" berechnet.

Darüber folgen dann verschiedene Sonderfallberechnungen für Überstunden, Feiertage, Wochenenden etcpp., aber das soll hier erstmal nicht Thema sein. Ich danke vielmals für hilfreiche Tipps.
30.01.2015
Ibiz 21 3
1 Antwort
1
Möglicherweise funktioniert das ganze, wenn du in der Formel statt der deutschen die entsprechenden englischen Schlüsselwörter verwendest (also IF statt WENN und SUM statt SUMME usw.). Ich hatte mal ähnliche Probleme mit der Steuerung von Excel über OLE-Automation aus eine .NET-Anwendung heraus die ich auf diesem Weg lösen konnte.

Gruß
Klaus
02.02.2015
luedi 2,0k 1 9
luedi 2,0k 1 9

Stelle deine Excel-Frage jetzt!