Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mehrschichtplan Kontrollzeile
#11
Meine letzte Formel rechnet auch inkorrekt.. also wieder bei 0
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#12
Um eine Prüfung in der Zeile durchzuführen habe ich mir nun eine Eigene Function geschrieben. Jetzt fehlt immer noch die Prüfung beim Schichtwechsel...

Code:
Option Explicit

Function RuheZeiten(L As Range, R As Range) As String
Dim RuheZeit As String
Dim G As Integer
Dim Cell As Range
Dim T As String
Dim S As Long
Dim V As Long



For Each Cell In L
       If Cell.Value <> "" And Cell = Cell.Offset(, 1) Then
       G = G + 1
       T = Cell.Value
       S = Cell.Column
       V = R.Row
       Else
       G = 0
       End If
       If G > 5 Then
       RuheZeit = "Ruhezeit! (" & T & ") am " & Format(Cells(V, S + 1).Value, "DD.MM.YY")
       G = 0
       End If
Next

If RuheZeit = "" Then
RuheZeiten = ""
Else
RuheZeiten = RuheZeit
End If

End Function
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#13
Hallo

ich habe mir noch mal Gedanken zu einem Prüfmakro gemacht. Würde mich freuen wenn es brauchbar ist.
Es testet ob in jeder einzelnen Zeile der Mitarbeiter mehr als 6x vorkommt.  Dann wird die Zeile gemeldet.

mfg  Gast 123

Code:
Option Explicit      '22.10.2018  für Clever Forum
Const Grün = 43   '(Index)


Sub Ruhezeiten_Prüfung()
Dim f As Integer  'Fehlerzaehler
Dim n As Integer, spa As Integer
Dim j As Integer, Zeile As Integer
Dim lsp As Integer, lze As Integer
Dim Mta As String, FTxt As String

  'LastZell + LastSpalte ermitteln
  lze = Cells(200, 1).End(xlUp).Row
  lsp = Cells(2, 2).End(xlToRight).Column

  'Schleife für alle Spalten auswerten
  For Zeile = 5 To lze
     If Cells(Zeile - 1, 2).Interior.ColorIndex = Grün Then
     ElseIf Cells(Zeile + 1, 2).Interior.ColorIndex = Grün Then
     ElseIf Cells(Zeile, 2).Interior.ColorIndex <> Grün Then
       Mta = Empty  'Mitarbeiter Name löschen
       'Schleife für MTA Namenblöcke auswerten
       For spa = 2 To lsp
           If Cells(Zeile, spa) = Empty Then Mta = Empty
           If Mta = "" And Cells(Zeile, spa) <> "" Then
              Mta = Cells(Zeile, spa): n = 0
              'Anzahl MTA Tage ermitteln
              For j = spa To lsp
                 If Cells(Zeile, j) <> Mta Then Exit For
                 n = n + 1
              Next j
           'ggf. Fehlerauswertung:
           If n > 6 Then
              FTxt = FTxt & Chr(10) & j - spa & "x  " & Mta & " - in Zeile " & Zeile
              f = f + 1
           End If
           'MTA Zellenblock überspringen
           spa = spa + n - 1: Mta = Empty
        End If
     Next spa
     End If
  Next Zeile
 
  If f > 0 Then MsgBox f & " Fehler:  " & FTxt
  If f = 0 Then MsgBox "Ruhezeiten Prüfung - Okay!"
End Sub
Antworten Top
#14
Danke! Das ist äußerst nett! Wenn du dem Tread allerdings noch einmal folgst, kannst du sehen, dass ich dafür bereits schon eine Funktion geschrieben habe... Falls dich das ganze Ergebnis interessiert, kann ich dir auch gerne noch das Ergebnis posten...
Eine Menge reden, aber nichts sagen können viele...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste