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)
en espérant que vous pourrez m'aider.
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 linsertion de ce nouveau contact ? ", vbYesNo, " Demande de confirmation dajout ") = 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
Partager