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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

NONO14

XLDnaute Impliqué
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

Solution
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,

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:
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour