Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
700to704
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
700to704
700to704
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleifenproblem

Schleifenproblem
26.11.2005 17:25:33
Mat
Servus,
ich habe folgendes Problem. Ich muss einen Arbeitszeitnachweis für meinen Chef programmieren. Das Ganze funzt eigentlich auch schon ganz gut.
Ich habe jetzt folgendes Problem: Der Arbeitsbeginn/-ende Pausebeginn/-ende wird über CommandButtons mit der jeweiligen Systemzeit in das Arbeitsblatt eingetragen. Vorgabe ist jetzt, dass bei einer Arbeitszeit über 6 Std. ohne Pause eine MsgBox aufgeht mit einem Warnhinweis.
Meine nachfolgend aufgeführte Schleife hat das Problem, dass das Ganze "nur" nacheinander geht. Gibt es eine Möglichkeit, das über ActiveCell zu Regeln?
I= Arbeitsende, D=Arbeitsbeginn, E=PauseBeginn, F=PauseEnde

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z As Date, o As Date, p As Date, q As Date, r As Date, s As Date
Dim k As Integer
Dim t As Date, u As Date
For k = 12 To 43
o = Range("I" & k).Value
p = Range("D" & k).Value
q = Range("N2").Value
r = Range("E" & k).Value
s = Range("F" & k).Value
If r = 0 And s = 0 And (o - p) > q Then MsgBox "Ihre Arbeitszeit beträgt mehr als 6 Stunden. Bitte eine Pause eintragen!", vbInformation
Next k
t = Range("P43").Value
u = Range("P46").Value
If u > t Then MsgBox "Achtung!!! Gleitzeitrahmen unterschritten!!"
End Sub

Danke schon mal im Voraus für Eure Hilfe!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleifenproblem
26.11.2005 19:23:17
Matthias
Hallo Mat,
mir fehlt ein wenig die konkrete Vorstellung, wie deine Tabelle aussieht, aber in Grunde etwa so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z As Date, o As Date, p As Date, q As Date, r As Date, s As Date
Dim k As Integer
Dim t As Date, u As Date
Dim kP As Boolean
For k = 12 To 43
o = Range("I" & k).Value
p = Range("D" & k).Value
q = Range("N2").Value
r = Range("E" & k).Value
s = Range("F" & k).Value
If r = 0 And s = 0 And (o - p) > q Then kP = True : Exit For
Next k
If kP Then MsgBox "Ihre Arbeitszeit..."
t = Range("P43").Value
u = Range("P46").Value
If u > t Then MsgBox "Achtung!!! Gleitzeitrahmen unterschritten!!"
End Sub

Gruß Matthias
Anzeige
AW: Schleifenproblem
26.11.2005 20:00:57
Mat
Sorry,
also die Variable p enthält den Arbeitsbeginn Spalte (D12:D43)
die Variable o enthält das Arbeitsende (I12:I43)
die Variablen r und s den Pausenbeginn, bzw. das Pausenende
Wenn nun die Pausenfelder keine Eintragungen haben und die Arbeitszeit (o-p) größer als 06:00 Stunden dann soll die MsgBox aufgehen.
Wenn das nun nach Deinem Vorschlag eintrage erscheint die MsgBox bei jedem Eintrag.
AW: Schleifenproblem
26.11.2005 20:17:28
Mat
Sorry funzt einwandfrei.....
Vielen Vielen vielen dank!
AW: Schleifenproblem
26.11.2005 20:22:12
Matthias
Hallo Mat,
das lässt sich doch besser über eine Formel lösen:
in eine freie Spalte in Zeile 12:

=WENN(UND((I12-D12)*24>6;ODER(E12=0;F12=0));"PAUSE!";"")

und runterziehen.
Die VBA-Lösung nervt den Anwender, wenn er eh vorhatte, die Pause noch einzutragen, und mit dem Wegklicken der MsgBox ist der Fehler schnell vergessen. Mit der Formel sieht er auf einen Blick, wo etwas nicht stimmt.
Gruß Matthias
Anzeige
AW: Schleifenproblem
26.11.2005 20:49:49
Mat
Servus,
ich hatte das auch erst über eine WENN-Formel realisiert, doch meinem Chef war dies zu "harmlos".
Die Anwender sollen eigentlich nicht mehr als 6 Stunden arbeiten und keine Pause machen. Kommt es doch vor, muss er dies in einem Feld "Anlass" begründen. Habe die Abfrage jetzt dementsprechend angepasst, also Wenn kP = True und Anlass ="" dann MsgBox!
Es soll also ein bisserl nerven!
Noch mal vielen Dank.
Super Forum hier!
AW: Schleifenproblem
26.11.2005 21:15:11
HansH
Hallo Matthias,
so sind die Chefs. Inhaltlich hast Du recht. Die andere Lösung zeigt klar, dass es der "Chef" garnicht gerne sieht, wenn mal Pausen gemacht werden.
Gruß
Hans
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige