XL 2019 Saisie prédictive dans un textbox associé à une listbox

  • Initiateur de la discussion Initiateur de la discussion JFLulu
  • Date de début Date de début

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 !

JFLulu

XLDnaute Nouveau
Bonjour à toutes et tous,
Tout d'abord je précise que je suis NUL en programmation ou du moins pas très doué 😉 .
Ma question est la suivante: Un control listbox (ListeClient) faisant référence à un feuille Excel(TableClient).
La liste comprend 1250 noms.
je souhaite donc avec la saisie dans un textbox1 "filtré" (je ne sais pas si le terme est adéquate ) rechercher le nom et l'affiché dans la listbox comme un peu google quand je cherche une occurrence.
j'ai trouver le code suivant (voir fichier joint) mais j'ai une erreur "Erreur de compilation , membre de méthode ou de données introuvable", c'est je pense au niveau de
" .List(.Count - 1, 2) = C.Row
Merci d'avance pour votre aide
Cordialement JF
 

Pièces jointes

Solution
cf PJ

VB:
Option Compare Text
Dim TblBD()

Private Sub UserForm_Initialize()
  TblBD = [client].Value
  Me.ListClient.List = TblBD
  Me.ListClient.ColumnCount = 2
  Me.ListClient.ColumnWidths = "30;100"
End Sub

Private Sub TxtRecherche_Change()
  ColRecherche = 2
  clé = "*" & Me.TxtRecherche & "*": n = 0
  Dim Tbl()
  For i = 1 To UBound(TblBD)
    If TblBD(i, ColRecherche) Like clé Then
        n = n + 1: ReDim Preserve Tbl(1 To UBound(TblBD, 2), 1 To n)
        For k = 1 To UBound(TblBD, 2): Tbl(k, n) = TblBD(i, k): Next k
     End If
  Next i
  If n > 0 Then Me.ListClient.Column = Tbl Else Me.ListClient.Clear
End Sub

Boisgontier
Merci Boisgontier,
mais je n'utilise pas de combobox pour cette petite application. je souhaite comprendre l'erreur qui s'affiche pour ne pas la reproduire. pour cette petite application j'utilise des userforms la feuille excel étant invisible à l'utilisateur.
Cordialement
Jf
 
cf PJ

VB:
Option Compare Text
Dim TblBD()

Private Sub UserForm_Initialize()
  TblBD = [client].Value
  Me.ListClient.List = TblBD
  Me.ListClient.ColumnCount = 2
  Me.ListClient.ColumnWidths = "30;100"
End Sub

Private Sub TxtRecherche_Change()
  ColRecherche = 2
  clé = "*" & Me.TxtRecherche & "*": n = 0
  Dim Tbl()
  For i = 1 To UBound(TblBD)
    If TblBD(i, ColRecherche) Like clé Then
        n = n + 1: ReDim Preserve Tbl(1 To UBound(TblBD, 2), 1 To n)
        For k = 1 To UBound(TblBD, 2): Tbl(k, n) = TblBD(i, k): Next k
     End If
  Next i
  If n > 0 Then Me.ListClient.Column = Tbl Else Me.ListClient.Clear
End Sub

Boisgontier
 

Pièces jointes

Bonjour,

Je suis intéressé par ce programme pour alimenter des textbox qui devront reprendre une liste de l'ensemble des communes française avec leur code postal.

Je suis donc parti de la base de ce code et l'ai "un peu" adapté pour alimenter directement le texbox à partir de la listbox.
Je fais une recherche sur textbox puis clic sur la commune voulue sur la listbox ce qui me renseigne le textbox correctement.
Par contre quand je reviens sur le textbox pour effacer l'entrée, j'ai une erreur que je n'explique pas.

Je joints le fichier.

Merci de votre retour.
 

Pièces jointes

- 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
Retour