Bonjour,

Afin de perfection mon fichier et de rendre la vie plus facile à mes chefs, je désire que lorsqu'un employé saisie des heures supplémentaires, cela les note directement à la bonne place ( c'est à dire à la ligne correspondant à son nom et à la date correspondante.)

J'ai crée un UserForm permettant la saisie des heures supplémentaire. (voir image)

Nom : 2017-10-16 (1).png
Affichages : 417
Taille : 316,6 Ko

Lorsque j'insère la date cela sélection la bonne case selon la date. (Cela fonctionne avec le code ci-dessous)

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
 
Private Sub MaDate_AfterUpdate()
Dim DateRecherchee As Date
Dim AnneeEnCours As String
Dim chainevide As String
Dim Nomfichier As String
 
Nomfichier = ThisWorkbook.Name
Nomfichier = Left(Nomfichier, Len(Nomfichier) - 5)
AnneeEnCours = Format(Worksheets("2018").Range("AA1").Value, "yyyy")
chainevide = "--.--." & AnneeEnCours
 
UnprotectSheet
Application.ScreenUpdating = False
 
On Error GoTo Invalide
 
UnprotectSheet
DateRecherchee = Me.MaDate.Value
Application.GoTo Reference:=Worksheets("2018").Range("AB11:ACD11").Find(DateRecherchee).Offset(14, 0), Scroll:=False
ProtectSheet
 
Exit Sub
 
Invalide:
        MsgBox ("Cette date n'est pas valide pour le fichier " & Nomfichier & " ."), vbCritical
        Me.MaDate.Value = chainevide
 
End Sub
Je désire maintenant que lorsque l'employé sélectionne son nom dans la ComboBox, cela sélectionne une ligne sous son nom. Ici ça ne fonctionne pas et me met une erreur d’exécution 91 :-(

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
 
Private Sub ChoixAmbu_Change()
Dim NomRecherche As String
Dim Nomfichier As String
 
NomRecherche = Me.ChoixAmbu.Value
Nomfichier = ThisWorkbook.Name
Nomfichier = Left(Nomfichier, Len(Nomfichier) - 5)
 
Application.ScreenUpdating = False
 
On Error GoTo Invalide
UnprotectSheet
 
Application.GoTo Reference:=Worksheets("2018").Range("A25:A183").Find(NomRecherche).Offset(1, 2), Scroll:=False ' <----- ligne soulignée en jaune après erreur d’exécution 91
 
Exit Sub
Invalide:
        MsgBox ("Cet utilisateur n'est pas valide pour le fichier " & Nomfichier & " ."), vbCritical
End Sub

En finalité, j'aimerai que lorsque la date, le nom et que le reste des informations de l'UserForm sont entrées, cela copie le résultat du calcul d'heures supplémentaire à la bonne place.

Déjà un grand merci pour votre aide.

Cordialement