Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktualisierung von Formelergebnissen nach Zellwert

Aktualisierung von Formelergebnissen nach Zellwert
21.02.2018 23:57:29
Formelergebnissen
Hallo miteinander,
nachdem ich schon längere Zeit hier "mitlese" und viele gute Ideen und Ansätze gefunden habe komme ich nun mit einem Problem "um die Ecke", das ich alleine nicht in den Griff bekomme:
Derzeit arbeite ich an einer Arbeitsmappe zur Arbeitszeitberechnung, in der für jeden Monat ein Tabellenblatt (plus ein zusätzliches Auswertungsblatt) liegen. Jeder Arbeitstag wird in einer Zeile berechnet:
In den Spalten D bis G geben die Benutzer händisch folgende Angaben ein:
Spalte D:Uhrzeit Arbeitsbeginn (Morgen)
Spalte E: Uhrzeit Mittagspausenbeginn
Spalte F: Uhrzeit Mittagspausenende
Spalte G: Uhrzeit Arbeitsende (Abend)
In Spalte H wird eine Formel zur Berechnung Summe der Arbeitsstunden berechnet und formatiert mit
Sheets(1).Cells(4, 10).FormulaR1C1 = "=IF(RC[-2]>RC[-1],RC[-2]-RC[-1],""0:00"")"
Sheets(1).Cells(4, 9).NumberFormat = "[h]:mm"
Aus einer Userform werden die Soll-Arbeitsstunden pro Wochentag in Spalte I übernommem.
In Spalte J sollen die Überstunden berechnet werden:
Sheets(1).Cells(TagesZeilen, 10).FormulaR1C1 = "=IF(RC[-2]>RC[-1],RC[-2]-RC[-1],""0:00"")"
Sheets(1).Cells(TagesZeilen, 10).NumberFormat = "[h]:mm"
In Spalte K sollen Minusstunden berechnet werden:
Sheets(1).Cells(TagesZeilen, 11).FormulaR1C1 = "=IF(RC[-3]<RC[-2],""0:00"",RC[-2]-RC[-3])"
Sheets(1).Cells(TagesZeilen, 11).NumberFormat = "[h]:mm"
Das eigentliche Problem: die Berechnungsergebnisse in den Spalten J und K aktualisieren sich nicht, wenn der Benutzer die Handeingaben in den Spalten D bis G verändert! Einzige Ausnahme: wird zum Beispiel in Spalte G anstatt "17:00" (versehentlich) nur ":00" eingegeben, erscheint in den Spalten H, J und K der Eintrag "#WERT!".
Ich hoffe, ich konnte das Problem verständlich darlegen und würde mich sehr freuen, wenn mir hierbei jemand weiterhelfen könnte! Schon jetzt vielen Dank für eure Bemühungen!
Viele Grüße
andittel
P.S.: Eventuell noch zwei "sachdienliche" Hinweise (?):
1. Ich benutze Excel 2016;
2. der gesamte Code liegt der vorher erwähnten UserForm.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktualisierung von Formelergebnissen nach Zellwert
22.02.2018 00:04:13
Formelergebnissen
Sorry, ist mir eben noch aufgefallen: Die Variable "TagesZeilen" wollte ich hier eigentlich überall zur Vereinfachung mit der Ziffer 4 (= Zeile 4) ersetzen. Bin wohl einfach schon zu müde...
Viele Grße
andittel
Beispielmappe bitte.
22.02.2018 02:12:02
Werner
Hallo,
ein paar Anmerkungen:
In Spalte H wird eine Formel zur Berechnung Summe der Arbeitsstunden berechnet und formatiert mit
Sheets(1).Cells(4, 10).FormulaR1C1 = "=IF(RC[-2]>RC[-1],RC[-2]-RC[-1],""0:00"")"
Sheets(1).Cells(4, 9).NumberFormat = "[h]:mm"
Du schreibst hier nichts in Spalte H (das wäre Cells(4, <b>8</b>) sondern in Spalte J (das ist Cells(4, <b>10</b>)
Deine Formatierung machst du in Spalte I (das ist Cells(4, <b>9</b>)
Weiter schreibst du, dass in Spalte H mit der obigen Formel die Arbeitsstunden berechnet werden. Das stimmt nicht. Hast du dir die Formel mal angeschaut? Wenn ich deine obige Formel in die Spalte H schreiben lasse, dann sieht sie folgendermaßen aus:
=WENN(F4>G4;F4-G4;"0:00")
Hier prüfst du, ob F4 (Pausenende) kleiner G4 (Arbeitsende). Wenn ja, dann ziehst du F4 (Pausenende) von G4 (Arbeitsende) ab.
Das wird aber nie passieren, da anzunehmen ist, dass die Pause immer früher beendet wird, wie die Arbeit. Somit wird F4 niemals kleiner G4 sein.
Das hat zur Folge, dass bei der Formel immer der Dann-Teil ausgeführt wird. Bedeutet, es wird immer 0:00 ausgegeben. Und dadurch, dass du "0:00" mit Gänsefüßchen in der Formel hast, wird auch noch ein Text in der Zelle ausgegeben und keine Zahl.
Unabhängig zu den Ungereimtheiten gehe ich nicht davon aus, dass hier jemand große Lust dazu hat, deine Datei nach zu bauen.
Deshalb meine Bitte: Lade doch bitte deine Mappe hier hoch. Das dürfte die Chancen, dass sich jemand der Sache annehmen wird, deutlich erhöhen.
Gruß Werner
Anzeige
AW: Beispielmappe bitte.
24.02.2018 10:57:05
andittel
Lieber Werner,
herzlichen Dank für deine Hinweise!!! Die Summenformel und die Zellbezüge habe ich tatsächlich noch selbst korrigiert bekommen, bevor ich deine Antwort lesen konnte. Das waren wohl eher müdigkeitsbedingte "Leichtsinnsfehler". :)
Aber du hast mir einen ganz entscheidenden Hinweis gegeben: "Und dadurch, dass du "0:00" mit Gänsefüßchen in der Formel hast, wird auch noch ein Text in der Zelle ausgegeben und keine Zahl."
Tatsächlich habe ich es nun damit geschafft, die täglichen Soll-Stunden (die von den Mitarbeitern manuell in TextBoxen auf einer UserForm zu hinterlegen sind) als "Zeitwert" in die Tabellenblätter zu übertragen. Dazu musste ich die Zeitangaben in der Schreibweise Stunden:Minuten in Stunden /24 und Minuten /24/60 (ohne Doppelpunkt) zerlegen und beide Werte addieren, anschließend in der so entstandenen Dezimalzahl das Komma durch einen Punkt ersetzen. Somit erhalte ich einen Wert, mit dem ich in einer R1C1-Formel weiterrechnen kann.
Das "Nachbauen" der Datei hat sich somit erledigt... hast ein Bier bei mir gut! ;)
Viele Grüße
Andreas
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
24.02.2018 10:58:37
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige