Problème contrôle de saisie avec Find/If/Max

Bonjour à tous,

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

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 + 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)

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.

Voici la partie du code qui me pose problème. C'est surtout pour la logique que je pensais mettre en place que je le laisse là (sinon je sais qu'il est bien faux)

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, LookIn:=xlValues)
    Set Da = .Find(PrenomTextBox, LookIn:=xlValues)
    Set Ea = .Find(DateTextBox - 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

Je vous laisse aussi fichier en espérant que vous pourrez m'aider.

Bonne journée

21test.xlsm (83.14 Ko)

Bonjour

Vous devriez mettre quelques données dans le fichier en feuille Saisie (voire d'autres feuilles) afin que l'on puisse comprendre et surtout tester

Cordialement

Rechercher des sujets similaires à "probleme controle saisie find max"