Microsoft Excel

Herbers Excel/VBA-Archiv

Pausenzeiten

Betrifft: Pausenzeiten von: gerry09
Geschrieben am: 26.09.2014 17:55:29

Hallo,
ich suche für folgendes Problem eine Lösung.
Es handelt sich hierbei um die Pausen vergabe im Betrieb die bei allen Mitarbeitern unterschiedlich ist.
Für den Bereich G3 : G72 hätte ich gerne per Doppel-Klick auf die Zelle z.B. G3 die Anfangszeit der Pause Dokumentiert.
Für den Bereich H3 : H72 hätte ich gerne per Doppel-Klick auf die Zelle z.B. H3 die Endzeit der Pause Dokumentiert. Die Pause dauert 30 Minuten.
Es wäre schön wenn mir jemand helfen könnte.
Vielen Dank im Voraus.

LG
Gerald

  

Betrifft: AW: Pausenzeiten von: hary
Geschrieben am: 26.09.2014 18:01:16

Moin
"Die Pause dauert 30 Minuten."
Dann brauchst du doch nicht SpalteH ueberwachen. Doppelklick SpalteD eintrag Anfang und in SpalteH eintragen Anfangszeit + 30Min.
oder seh ich das falsch?
gruss hary


  

Betrifft: AW:ansonsten so von: hary
Geschrieben am: 26.09.2014 18:13:29

Moin nochmal

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("G3:G72,H3:H72")) Is Nothing Then
  Select Case Target.Column
    Case 7: Target = Format(Time, "hh:mm")
    Case 8: If Target.Offset(, -1) <> "" Then Target = Format(Time, "hh:mm")
  End Select
End If
 Cancel = True
End Sub

gruss hary


  

Betrifft: Einspruch ;-) von: Matthias L
Geschrieben am: 26.09.2014 18:25:48

Hallo hary

Du kannst hier eigentlich nicht mit Time arbeiten, sondern muss Now nehmen.
Es könnten ja (weil unterschidliche Pausenzeiten! a Mitarbeiter)
auch jemand 23:45:00 bis 00:15:00 Pause machen.
Also braucht man auch das Datum dazu.

Nur mal so auf die Schnelle:

 GHI
1PausePauseReale
2BeginnEndePausenzeit
325.09.2014 23:45:0026.09.2014 00:15:0030:00 min

Formeln der Tabelle
ZelleFormel
I3=WENN(UND(UND(H3<>"";G3<>"");H3>G3);REST(H3-G3;1);"")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Format in Spalte("I")
[mm]:ss "min"

Gruß Matthias


  

Betrifft: AW: Einspruch ;-) von: hary
Geschrieben am: 26.09.2014 18:32:41

Moin Matthias
Einspruch stattgegeben.
Hatte ich auch erst ueberlegt, mache aber erstmal keine Nachtschichten. ;-)
Ausserdem ist es Crosspost.
gruss hary


  

Betrifft: AW: Einspruch verworfen;-) von: hary
Geschrieben am: 26.09.2014 18:39:59

Moin nochmal
Passt doch mit Rest, oder bin ich zu lange am Com.?



Tabelle2

 GHI
1023:4500:1500:30

verwendete Formeln
Zelle Formel Bereich R1C1 für Add In
I10=REST(H10-G10;1)  =MOD(RC[-1]-RC[-2],1)

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

gruss hary


  

Betrifft: Ja klar - alles gut ;-) owT von: Matthias L
Geschrieben am: 26.09.2014 18:53:36




  

Betrifft: Einspruch erneut ... von: Matthias L
Geschrieben am: 26.09.2014 19:22:54

Hallo hary

Es ging ja nicht um die Auswertung der Pausenzeit, sondern um das Setzen der Zeit beim Doppelklick.
Die Formeln in Spalte("I") habe ich ja nur demontrativ (als Test) eingepflegt.

Ich hab jetzt mal mit Deinem Codebeispiel und der "Nur"-RestFormel gearbeitet.
Da kann aber auch das bei rauskommen:

 GHI
1PausePauseReale
2BeginnEndePausenzeit
319:08:0019:06:0023:58:00
419:15:0019:08:001433:00 min

Formeln der Tabelle
ZelleFormel
I3=REST(H3-G3;1)
I4=REST(H4-G4;1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Hier kannst Du nämlich die Startzeit der Pause später durch Doppelklick neu setzen,
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("G3:G72,H3:H72")) Is Nothing Then
  Select Case Target.Column
    Case 7: Target = Format(Time, "hh:mm")
    Case 8: If Target.Offset(, -1) <> "" Then Target = Format(Time, "hh:mm")
  End Select
End If
Cancel = True
End Sub



was ich bei meinem Versuch unterbunden habe.
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(Target, Range("G3:G72")) Is Nothing Then
 If Target.Offset(, 1) = "" Then Target = Now
End If
If Not Intersect(Target, Range("H3:H72")) Is Nothing Then
 If Target.Offset(, -1) <> "" And Target = "" Then Target = Now
End If
End Sub
Gruß Matthias


  

Betrifft: AW: Einspruch erneut ... von: hary
Geschrieben am: 27.09.2014 08:00:27

Moin Matthias
So hast du natuerlich Recht.
Dann trage ich halt,nachtraeglich, die Zeiten haendisch ein.*Zungerausstreck* ;-))
Aber hat das wirklich mit Time und Now zu tun?
Egal,nu is erstemal Party-WE
gruss und schoenes WE
hary


  

Betrifft: kein Einspruch, schö. WE :-) kwT von: Matthias L
Geschrieben am: 27.09.2014 08:37:52