Bonjour à toutes et à tous,
Dans le code suivant, je suis censé trouver dans un TS la valeur d'une TextBox et qu'un résultat s'affiche dans une autre.
Ici, on recherche dans la feuille "Liste_agents", dans le TS t_Noms, le code de l'agent qui est tapé dans la TextBox "TextCode" et si le code est trouvé alors on affiche le nom du ou de la salariée dans la TextBox "T_bx_Nom" mais ça ne fonctionne pas.
Le formulaire UfPointage est appelé par un clic sur le bouton se trouvant sur la feuille "Saisie".
Pouvez-vous m'aider s'il vous plaît ? Je n'arrive pas à trouver d'où vient le problème.
Voici le code et le fichier
Dans le code suivant, je suis censé trouver dans un TS la valeur d'une TextBox et qu'un résultat s'affiche dans une autre.
Ici, on recherche dans la feuille "Liste_agents", dans le TS t_Noms, le code de l'agent qui est tapé dans la TextBox "TextCode" et si le code est trouvé alors on affiche le nom du ou de la salariée dans la TextBox "T_bx_Nom" mais ça ne fonctionne pas.
Le formulaire UfPointage est appelé par un clic sur le bouton se trouvant sur la feuille "Saisie".
Pouvez-vous m'aider s'il vous plaît ? Je n'arrive pas à trouver d'où vient le problème.
Voici le code et le fichier
VB:
Private Sub TextCode_Change()
Dim Ctrl As Control
Dim Ctrl2 As Control
Dim Trouvé As Boolean
Me.TextCode.Text = UCase(Me.TextCode)
If Not EnableEvents Then Exit Sub
'on cherche le nom associé au code dans la TS "t_Noms"
With Sheets("Liste_agents").ListObjects("t_Noms")
Set trouve = .ListColumns(1).Range.Find(Me.TextCode, lookat:=xlWhole)
If Not trouve Is Nothing Then
Me.T_bx_Noms = trouve.Offset(0, 1)
Else
Me.T_bx_Noms = ""
End If
End With
'on cherche dans la TS t_Saisie la ligne qui correspond au code ET à la date du jour
With Sheets("Saisie").ListObjects("t_Saisie")
Trouvé = False
For I = 1 To .ListRows.Count
If .ListColumns("Code agent").DataBodyRange(I) = Me.TextCode And .ListColumns("Date").DataBodyRange(I) = Me.T_bx_DateJour Then
lig = I
Trouvé = True
Exit For
End If
Next I
If Not Trouvé Then Exit Sub 'pas de ligne correspondante ==> l'employé n'a jamais rien saisi pour cette journée
'on charge les horaires déjà saisies pour la date du jour
Me.T_bx_Noms = .DataBodyRange(I, 2)
Me.Tbx_DebMat.Value = Format(.DataBodyRange(I, 4), "hh:mm")
Me.Tbx_FinMat.Value = Format(.DataBodyRange(I, 5), "hh:mm")
Me.Tbx_DebAPM.Value = Format(.DataBodyRange(I, 6), "hh:mm")
Me.Tbx_FinAPM.Value = Format(.DataBodyRange(I, 7), "hh:mm")
Me.Tbx_DebSoir.Value = Format(.DataBodyRange(I, 8), "hh:mm")
Me.Tbx_FinSoir.Value = Format(.DataBodyRange(I, 9), "hh:mm")
Me.T_bx_Commentaire = .DataBodyRange(I, 11)
End With
'on rend tous les checkbox disable et invisible par défaut
For I = 0 To 5
Me.Frame2.Controls("Chk_" & ListTbx(I)).Enabled = False
Me.Frame2.Controls("Chk_" & ListTbx(I)).Visible = False
Next I
Dernier = LastPointé + 1
For I = Dernier To 5 'on rend disponibles et visibles les controles autorisés après le dernier pointage
Me.Controls("Tbx_" & ListTbx(I)).Enabled = True
Me.Controls("Chk_" & ListTbx(I)).Enabled = True
Me.Controls("Chk_" & ListTbx(I)).Visible = True
Next I
If Dernier = 6 Then 'si tout est pointé
Me.Btx_Valide.Enabled = False
Me.Lbx_Information = "Vous ne pouvez plus pointer pour cette journée"
End If
CalculerTotalJournée
End Sub