Sélection ligne bug
Bonjour,
C'est sûrement tout bête mais je bute là-dessus depuis 1h maintenant...
J'utilise un tableau structuré qui se nomme T_Data et la colonne qui se nomme Nom du dossier.
Mon code :
'Saisie mot-clé dans textbox mot_cle + alimentation listbox liste_projets
Private Sub rech_mot_cle_Click()
Me.liste_projets.Clear
For i = 1 To [T_data].Rows.Count
If InStr(1, Range("T_Data").ListObject.ListColumns("Nom du dossier").DataBodyRange.Cells(i, 1).Value, Me.mot_cle.Value) Then
Me.liste_projets.AddItem Range("T_Data").ListObject.ListColumns("Nom du dossier").DataBodyRange.Cells(i, 1).Value
End If
Next
If Me.liste_projets.ListCount = 0 Then MsgBox "Le mot clé saisi n'existe pas dans la liste des dossiers."
End Sub
'Sélection de la ligne où se trouve le projet sélectionné dans la listbox liste_projets
Private Sub rechercher_Click()
If Me.liste_projets.Value = "" Then
MsgBox ("Merci de sélectionner un dossier dans la liste déroulante avant de rechercher.")
Else
i = Application.Match(liste_projets.Value, Range("T_Data").ListObject.ListColumns("Nom du dossier").DataBodyRange, False)
If IsError(i) Then MsgBox ("projet non trouvé"): Exit Sub
Feuil2.Select
Rows(i).Select
Unload Me
End If
End Sub
Private Sub annuler_Click()
Unload Me
End SubDans un premier temps, l'utilisateur saisi son mot-clé et clique sur le bouton qui permet ensuite d'alimenter la liste déroulante avec tous les projets contenant le mot-clé saisi.
Ensuite l'utilisateur choisi le projet qu'il souhaite dans la liste déroulante et clique sur le bouton "Rechercher", la ligne du projet concerné est alors sélectionnée.
Donc rien de bien compliqué...
Mais quoi que je fasse il sélectionne toujours la ligne 11 de ma feuille et celle-ci ne correspond pas du tout au nom de projet recherché, je ne comprends vraiment pas ce qu'il se passe...
Merci par avance !!!!
Bonne journée :)
Bonjour
Sans voir le fichier .....
Liste_projets correspond à une liste dans une combobox ou une valeur entrée dans une textbox ?
Si oui, c'est lors de la sélection du projet que vous voulez sélectionner dans le tableau Range("DATA") ?
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
Salut Dan, je pense tout de même fournir une première réponse sur la la 2ème partie du code .
Essayer cette modif :
Private Sub rechercher_Click()
If Me.liste_projets.Value = "" Then
MsgBox ("Merci de sélectionner un dossier dans la liste déroulante avant de rechercher.")
Else
With [T_Data].ListObject
i = Application.Match(liste_projets.Value, .ListColumns("Nom du dossier").DataBodyRange, 0)
If IsError(i) Then MsgBox ("projet non trouvé"): Exit Sub
.Range.Worksheet.Select
.ListRows(i).Range.Select
End With
Unload Me
End If
End Sub* Attention l'indice i se rapporte à la ligne du tableau et non à celle de la feuille.
Salut Thev,
Oui j'avais pensé à ce que tu proposes.
Le tout est de savoir si le projet n'est pas choisi dans une combobox, auquel cas on peut jouer avec listindex et raccourcir le code.
Raison de mes questions
Attendons voir...