Anzeige
Archiv - Navigation
1372to1376
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

kleines aber feines Ärgernis

kleines aber feines Ärgernis
31.07.2014 08:25:23
Markus
Hallo!
Um meine Arbeitszeiten aufzunehmen benutze ich ein Excel Tool das mir dann alles berechnet.
Mir ist mir dabei was aufgefallen und möchte hier erfragen wie man das Ändern kann.
Zur Erklärung: zuerst mal ein Beispiel https://www.herber.de/bbs/user/91802.xls
Das Tool rechnet die Pausenzeiten raus. Diese sind bis 6h 0 min, ab 6h bis 9h 30min und dann bis 10h 45min.
Das Makro fragt dies ab. Funktioniert soweit ganz gut.
Es gibt aber ein kleines Detail wo es nicht klappt. Es gibt die Abfrage wenn die Arbeitszeit nach 12:30 Uhr endet und vor 12 Uhr beginnt wird eine Pause von 30min ausgegeben, obwohl auch die Abfrage über die Länge der Arbeitszeit Am besten mal das Beispiel durchgehen. Da wird es bestimmt verständlicher.
Gruß
Markus
Sub Zeiten()
Monat = ActiveSheet.Cells(3, 11)
Worksheets(Monat).Activate                        'Tabelle aktueller Monat
For J = 1 To 2       'linker und rechter Spaltenblock
If (J = 1) Then   'Spalten linker Zeitenblock
St = 3
En = 4
Da = 5
Pm = 7
Pd = 8
Else              'Spalten rechter Zeitenblock
St = 9
En = 10
Da = 11
Pm = 13
Pd = 14
End If
For I = 1 To 31   'Zeilen mit Zeiten
Po = 0         'Pausenmodell
Pa = 30        'Pausendauer
Range(Cells(10 + I, Da), Cells(10 + I, Da)) = ""
Range(Cells(10 + I, Pm), Cells(10 + I, Pm)) = ""
Range(Cells(10 + I, Pd), Cells(10 + I, Pd)) = ""
ActiveSheet.Cells(1, 26) = Range(Cells(10 + I, St), Cells(10 + I, St))
ActiveSheet.Cells(2, 26) = Range(Cells(10 + I, En), Cells(10 + I, En))
ActiveSheet.Cells(3, 26) = "=ISTEXT(R1C26)"  'beinhaltet Zelle Text
ActiveSheet.Cells(4, 26) = "=ISTEXT(R2C26)"
'wenn Zelle Text beinhaltet, nicht bearbeiten
If ((ActiveSheet.Cells(3, 26) = True) Or (ActiveSheet.Cells(4, 26) = True)) Then
Else
ActiveSheet.Cells(1, 25) = "=HOUR(TEXT(R1C26,""hh:mm:ss""))"        'dezimale  _
Stunde   ah
ActiveSheet.Cells(2, 25) = "=HOUR(TEXT(R2C26,""hh:mm:ss""))"        '                _
eh
ActiveSheet.Cells(3, 25) = "=(MINUTE(TEXT(R1C26,""hh:mm:ss""))/60)" 'dezimale  _
Minute   am
ActiveSheet.Cells(4, 25) = "=(MINUTE(TEXT(R2C26,""hh:mm:ss""))/60)" '                _
em
ah = ActiveSheet.Cells(1, 25)
eh = ActiveSheet.Cells(2, 25)
am = ActiveSheet.Cells(3, 25)
em = ActiveSheet.Cells(4, 25)
'wenn Zelle ohne Inhalt, nicht bearbeiten
If (IsEmpty(ActiveSheet.Cells(10 + I, St)) Or IsEmpty(ActiveSheet.Cells(10 + I, En)) _
) Then    'wenn Zelle leer, nichts
Else
'wenn Start bis 12:00 und Ende ab 12:30
If (((ah + am) = 12.5)) Then
'wenn Gesamtzeit  9.5) And ((eh + em - ah - am)  9.75) And ((eh + em - ah - am)  10.75h
ElseIf ((eh + em - ah - am) > 10.75) Then
ActiveSheet.Cells(10 + I, Da) = "10"
Po = 5
Pa = 45
End If
'wenn Start ab 12:30, d.h. ohne Pause
Else
Po = " "
Pa = 0
'wenn Start nach 12:00 oder Ende vor 12:30
If (((ah - am) > 12) And ((eh + em)  9 And (eh + em - ah - am)  9.25 And (eh + em - ah - am)  10.25) Then
ActiveSheet.Cells(10 + I, Da) = 10
End If
End If
ActiveSheet.Cells(10 + I, Pm) = Po
ActiveSheet.Cells(10 + I, Pd) = Pa
End If
End If
Next I
Next J
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kleines aber feines Ärgernis
31.07.2014 10:35:25
fcs
Hallo Markus,
du gibst ja generell eine Pausenzeit von 30 Minuten vor.
für die Bedingungen wenn Start bis 12:00 und Ende ab 12:30 hast du als erstes eine Prüfung
If ((eh + em - ah - am) 
Da Werte &lt=6 diese Bedingung auch erfüllen, werden 30 Minuten Pausendauer ausgegeben.
Du müsstest dies in folgender Art anpassen, um Pausenmodell/Pausendauer/Arbeitszeit anders festzulegen.
If ((eh + em - ah - am) 
Gruß
Franz

AW: kleines aber feines Ärgernis
01.08.2014 10:46:39
Markus
Super danke.
Es geht.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige