Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

VBA Ereignis - Wenn Wochenarbeitszeit sich ändert

VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
Carlo
Hallo Zusammen,
Ich habe folgendes Problem:
Ich habe eine Zelle mit der Summe der gesamten Arbeitsstunden pro Woche. Das Ereignis soll nun ausgelöst werden in VBA wenn sich diese Summe z. B. in der Zelle A16 verändert. Nun habe ich zusätzlich noch folgende Bedingungen:
Wenn die Summe der gesamten Woche (Formatierung der Zelle A16: hh:mm:ss, z. B 44:00:00) grösser wie 42h dann soll er die Differenz zwischen der Summe der gesamten Woche und den 42 Stunden in VBA berechnet werden. Es muss zwingend in VBA sein.
Vielen Dank für eure Hilfe.
Gruss
Carlo
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
15.10.2009 20:30:21
Gerd
Hallo Carlo,
die Summe in A16 wird per Code oder per Formel berechnet ?
Gruß
Gerd
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
15.10.2009 23:35:42
Carlo
Hallo Gerd
Die Summe der gesamten Wochenstunden wird mit der Excel-Formel SUMME(B10:B16) im Feld A16 berechnet und das Feld ist zudem noch mit hh:mm:ss formatiert, damit 42h möglich sind und es nicht nur bis 24h geht.
Gruss
Carlo
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
16.10.2009 21:52:19
Gerd
Hallo Carlo,
bin kein Anhänger von "Misch-Systemen" und verstehe deinen Zwang nicht.
Beispiel mit bedingter Ausgabe der Überstunden in A20 (Diese Zelle wäre noch zu
formatieren).
'Ins Modul der Tabelle
Private Sub Worksheet_Calculate()
Dim OldCalc As Long
OldCalc = Application.Calculation
Application.Calculation = xlCalculationManual
If Cells(16, 1).Value > 1.75 Then
Cells(20, 1).Value = Cells(16, 1).Value - 1.75
Else
Cells(20, 1).Value = ""
End If
Application.Calculation = OldCalc
End Sub
Gruß Gerd
Anzeige
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
19.10.2009 22:53:20
Carlo
Hallo Gerd,
Danke für deine Hilfe. Nun habe ich das Problem, dass ich mehrere Zellen mit verschiedenen Bedingungen habe. Zusätzlich zu A16 noch D16,G16 und I16 und wenn sich eine dieser Summe verändert, gibt es verschiedene Bedingungen.
Nun weiss ich nicht wie ich diese verschiedenen Summenfelder in deine Formel einfüge:
Private Sub Worksheet_Calculate()
Dim OldCalc As Long
OldCalc = Application.Calculation
Application.Calculation = xlCalculationManual
If Cells(16, 1).Value > 1.75 Then
Cells(20, 1).Value = Cells(16, 1).Value - 1.75
ElseIf
Weitere Bedingung Then
ElseIf
Weitere Bedingung Then
End If
Application.Calculation = OldCalc
If Cells(16, 4).Value > 1.6 Then
Cells(20, 4).Value = Cells(16, 4).Value - 1.6
ElseIf
Weitere Bedingung Then
ElseIf
Weiter Bedingung Then
End If
Application.Calculation = OldCalc
usw. für G16 und I16
End Sub
Wenn ich dies so mache, hängt sich das Excel auf. Weisst du wo der Wurm liegt? Wie muss ich die Formel anpassen?
Danke und Gruss
Carlo
Anzeige
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
20.10.2009 00:23:06
Gerd
Hallo Carlo,
beschreibe bitte die weiteren Bedingungen, evtl. für A16 u. jedenfalls die drei weiteren Zellen.
Gruß Gerd
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
20.10.2009 00:59:05
Carlo
Hallo Gerd,
Ein weiteres Probelm, war wenn ich dies Formel so geschrieben habe, dass die Formeln in den Excel Sheets nicht mehr auotmatisch gerechnet wurden, sondern auf manuell blieben.
Hier der detaillierte Code:
Private Sub Worksheet_Calculate()
Dim OldCalc As Long
OldCalc = Application.Calculation
Application.Calculation = xlCalculationManual
If Cells(16, 1).Value > 1.6 Then
Cells(20, 1).Value = Cells(16, 1).Value - 1.6
ElseIf
Cells(16, 1).Value  1.4 And Cells(16, 1).Value  1.6 Then
Cells(20, 4).Value = Cells(16, 4).Value - 1.6
ElseIf
Cells(16, 4).Value  1.4 And Cells(16, 4).Value 

Der Code für G16 und I16 ist derselbe wie bei A16 und D16.
Danke und Gruss
Carlo
Anzeige
AW: VBA Ereignis - Wenn Wochenarbeitszeit sich ändert
20.10.2009 20:30:15
Gerd
Hallo Carlo,
"Berechnung auf manuell gestellt" - Dies ist für die Laufzeit der Prozedur Absicht.
Wenn Du den Code zur Laufzeit ausbesserst oder dieser hängen bleibt, kann es
passieren, dass die Berechnung auf "manuell" stehen bleibt.
Deine IF - Bedingungen waren nicht ganz schlüssig sortiert.
Ich hoffe, Du hast keine flüchtigen Formeln mit HEUTE() oder JETZT() .
Private Sub Worksheet_Calculate()
Dim OldCalc As Long
OldCalc = Application.Calculation
Application.Calculation = xlCalculationManual
If Cells(16, 1).Value > 1.6 Then
Cells(20, 1).Value = Cells(16, 1).Value - 1.6
ElseIf Cells(16, 1).Value > 1.4 And Cells(16, 1).Value  1.6 Then
Cells(20, 4).Value = Cells(16, 4).Value - 1.6
ElseIf Cells(16, 4).Value > 1.4 And Cells(16, 4).Value 
Gruß Gerd
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige