Microsoft 365 Recherche dans un tableau structuré à partir d'une TextBox

NONO14

XLDnaute Occasionnel
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
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
 

Pièces jointes

  • PointHeure15b.xlsm
    808 KB · Affichages: 4

TooFatBoy

XLDnaute Barbatruc
Bonjour,

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.
Ça, ça ne va pas faire plaisir à chris, Phil et moi... 😭


À mon avis tu as encore un petit problème de logique dans ta macro : il me semble inutile de chercher le code et la date si le code n'a pas été trouvé précédemment.



Bonne chance pour ta question, camarade.
🖖
 
Dernière édition:

NONO14

XLDnaute Occasionnel
TootFatBoy,
Je recherche le code et la date après avoir fais la recherche sur le code et le nom pour voir si l'agent a déjà pointé et si c'est le cas, on ajoute son dernier pointage. Mon problème vient avant tout que la recherche du code dans t_Noms ne se fait pas et que ma TextBox "T_bx_Noms" reste vide
 

jurassic pork

XLDnaute Occasionnel
Hello,
c'est bizarre chez moi cela fonctionne (Excel 2021) :
Pointage.gif


Ami calmant, J.P
 

NONO14

XLDnaute Occasionnel
Bonjour le fil
N'y a t'il pas comme dit dans l'autre fil
Un problème de "casse" entre la saisie en majuscule et le format des données dans la colonne cible du tableau structuré (minuscules) ?

Bonne journée
Jean marie
Bonjour ChTi160
Le problème a été réglé, il y avait effectivement un problème de casse mais également de déclaration de fonction. Tout est rentré dans l'ordre à présent, du moins je l'espère...
Merci pour ta participation
 

Discussions similaires

Statistiques des forums

Discussions
314 062
Messages
2 105 223
Membres
109 292
dernier inscrit
Habib DIOP