Bonjour à tous,

Je m'en remets à vous face à mon problème que je n'arrive pas à solutionner depuis deux jours.

Je refais une tentative en maitrisant un peu mieux les règles du forum.

Je souhaite dans un formulaire bloquer la saisie si l'heure d'arrivée d'un jour N pour un personne donnée est inférieur à l'heure de départ maximale + 11h d'un jour N-1 pour cette même personne. (Représentant un temps de repos minimal de 11h entre deux jour de travail consécutif)

Heure d'arrivée étant saisie dans le formulaire
heure de départ étant enregistrée dans l'onglet saisie

Pour cela je dispose d'un formulaire qui me sert à renseigner les heures de départ et d'arrivée ainsi que la date. Ce formulaire se déverse dans l'onglet linkcell qui sert d’intermédiaire car des formules sont ajoutées à ce moment la. Enfin La ligne crée dans cet onglet grâce au formulaire vient se coller dans l'onglet saisie à la dernière ligne vide.

La partie du code jusqu'au Else me pose problème. C'est surtout pour la logique que je pensais mettre en place, que je le laisse là (sinon je sais que c'est bien faux)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Private Sub Ajouter_Button_Click()
 
    Dim L As Integer
    Dim Maximum As Long
    Dim Ca As Range
    Dim Da As Range
    Dim Ea As Range
 
 
    With Worksheets("Saisie")
    Set Ca = .Find("NomTextBox.Value", LookIn:=xlValues)
    Set Da = .Find("PrenomTextBox.Value", LookIn:=xlValues)
    Set Ea = .Find("DateTextBox.Value" - 1, LookIn:=xlValues)
 
 
    Maximum = Evaluate("=MAX(IF(B:B=Ca,IF(C:C=Da,IF(G:G=Ea,J:J))))")
 
    End With
 
 
  If MsgBox(" Confirmez-vous l’insertion de ce nouveau contact ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
 
    If HeureDebutTextbox < Maximum + 11 Then
 
    MsgBox "Il n'y a pas eu 11h de repos entre deux jours consécutifs"
 
    Exit Sub
 
   Else
 
        Sheets("Linkcell").Range("B2").Value = NomTextBox
        Sheets("Linkcell").Range("C2").Value = PrenomTextBox
        Sheets("Linkcell").Range("D2").Value = PosteTextBox
        Sheets("Linkcell").Range("E2").Value = UnitedestructComboBox
        Sheets("Linkcell").Range("G2").Value = DateTextBox
        Sheets("Linkcell").Range("I2").Value = HeureDebutTextbox
        Sheets("Linkcell").Range("J2").Value = HeureFinTextBox
        Sheets("Linkcell").Range("N2").Value = PresentOptionButton
        Sheets("Linkcell").Range("O2").Value = MotifAbsenceTextBox
        L = Sheets("Saisie").Range(" a65536 ").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
 
    Sheets("LinkCell").Rows(2).Copy
    Sheets("Saisie").Rows(L).PasteSpecial Paste:=xlPasteValues
 
        Unload Me
 
        End If
    End If
 
End Sub
en espérant que vous pourrez m'aider.