Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Résolu - TextBox ListBox Recherche Multicolonnes

jorge1201

XLDnaute Occasionnel
Bonjour le forum,

J'ai trouvé un code de patricktoulon (septembre 2020 excel downloads) qui permet d'effectuer une recherche à partir d'un TextBox sur un tableau d'un ListBox. L'avantage avec ce code est que la recherche se fait sur toutes les colonnes du tableau. J'essaie de l'adapter à mon projet mais je n'arrive que partiellement.

A l'ouverture du formulaire, la ListBox se rempli correctement. Lorsqu'on insère un carácter dans le TextBox, la recherche se fait mais avec quelques distorsions (une partie des informations de la dernière colonne de la ListBox est remplacé par de chiffres).

Je vous mets, en pièce jointe, un petit fichier dans l'espoir de susciter la curiosité d'une personne qui pourrait m'aider.
D'avance, tous mes remerciements. Jorge.
 

Pièces jointes

  • TextBox Recherche Multicolonnes_V1.xlsm
    30.3 KB · Affichages: 32

patricktoulon

XLDnaute Barbatruc
re
bon voila tu a un bouton "O" en plus qui te bascule en mode modif / supprimer ou mode ajout
comma ca tu pourra pas faire d'erreur du genre (cliquer sur ajouter après avoir sélectionné une ligne)

maintenant tu a tout
 

Pièces jointes

  • TextBox Recherche Multicolonnes-patricktoulon v3.xlsm
    34.1 KB · Affichages: 8

jorge1201

XLDnaute Occasionnel
patricktoulon, le forum,
Je n'ai pas tout testé encore mais ça a l'air de bien fonctionner. Je te remercie infiniment pour ce travail que pour toi représente, à te lire, un jeu d'enfant mais pas pour tout le monde (je parle de moi).
avec un TS comme BDD je le redis c'est enfantin

Puisqu'on y est et sans vouloir abuser de ta générosité, pourrais-tu me donner un coup de main pour coder quelques boutons supplémentaires : a) les boutons de navigation : premier, précédent, suivant et dernier et b) le bouton réinitialiser (frmRecherche) qui devrait d'une part effacer le TextBox1 et d'autre part annuler une éventuelle sélection des en têtes de la ListBox.

Je te remercie d'avance et mets en pièce jointe ton fichier avec les nouveaux éléments.
 

Pièces jointes

  • TextBox Recherche Multicolonnes_patricktoulon v4.xlsm
    29.8 KB · Affichages: 2

patricktoulon

XLDnaute Barbatruc
re
voilà
par contre je ne sais pas ce que tu a foutu mais les entete largeur et position ne correspondent plus bien

voila ton fichier



voilà comment je te l'ai donné tout a l'heure
l’entête correspond parfaitement bien dans la V3

 

Pièces jointes

  • TextBox Recherche Multicolonnes_patricktoulon v4 button plus.xlsm
    28.9 KB · Affichages: 8
Dernière édition:

patricktoulon

XLDnaute Barbatruc
juste au cas ou tu aurais encore l'envie de mettre tes sales pattes dans le code sans en piger une miette et m'obliger a fouiller ce que tu aurais pu faire
remet la sub comme il faut !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

et arrête de toucher n'importe quoi sinon j arrête là moi
VB:
Sub entetelistbox()
    Dim L&, I&, CT, W$
    L = Lentete.Left
    For I = 1 To UBound(Arraycol, 2)
        Set CT = Me.frmRecherche.Controls.add("Forms.Label.1", "labent" & I, True)
        With CT
            .Caption = "   " & Arraycol(1, I): .BorderStyle = 1: .BackColor = &HE1EDF8: .Tag = I
            .Move L, Lentete.Top, Range("tableau1").Cells(1, I).Width, 12
            W = W & Round(CT.Width, 2) & ";"
        End With
        Set cls(I).B = CT
        L = L + CT.Width
    Next
    ListBox1.ColumnWidths = W & "20"    '!!! pourquoi bloquer ça si tu bloque ça ca sert a rien  de faire le heading
End Sub
on s’étonne pourquoi je retrouve mes codes tout tarabiscoté
pensez a une chose c'est que le prochain demandeur qui aurait le même besoin , va prendre le code comme tel
si vous les trafiquez je ne suivrais pas
 

jorge1201

XLDnaute Occasionnel
ListBox1.ColumnWidths = W & "20" '!!! pourquoi bloquer ça si tu bloque ça ca sert a rien de faire le heading

Espèce de vieux grognon, commencerais-tu à perdre la mémoire? Pourquoi bloquer ça ...? Mais parce que tu me l'a demandé, pardis! Relit ton poste #30 de 14h32. A part ça, je n'ai rien touché d'autre.

De plus, occupé comme tu l'étais à me gronder, tu as oublié le code du bouton réinitialiser.

En dehors de ça, super travail. Merci.
 

jorge1201

XLDnaute Occasionnel
Je viens de réessayer avec le code du poste #51 et la ligne
ListBox1.ColumnWidths = W & "20"

provoque toujours la même erreur que celle signalée au poste #18 :
"Impossible de définir la propriété ColumnWidths. Le type ne correspond pas"
 

jorge1201

XLDnaute Occasionnel
patricktoulon : je te prie de réélire les postes # 18, 30, 32 et 33 et tu comprendras pourquoi ce changement. Sur ta suggestion #30, je t'avais annoncé ce changement au poste #32 mais tu n'as rien dit. Alors j'ai de la peine à comprendre ta réaction. Est-ce qu'il y a une solution à ce message d'erreur? S'il n'y a pas on arrête là et on passe à autre chose. Parle clairement s'il te plaît.
 

patricktoulon

XLDnaute Barbatruc
non moi je pensais que tu avais changé juste w mais pas bloqué la ligne
si tu bloque la ligne ça n'a pas de sens l’entête
on reviens donc a ton problème d'erreur qu'il faut régler

c'est pas le ";"
j'ai contrôlé la syntaxe du résultat w il est bon

j'ai l'impression que les refs basiques et natives sont en vrac sur ton System
 

jorge1201

XLDnaute Occasionnel
Bon, j'ai remis encore mes sales pattes et obtenu ça que fonctionne (tes séparateurs de colonnes ont repris leurs places)

J'ai modifié la ligne
W = W & Round(CT.Width, 2) & ";"

par
W = W & Round(CT.Width) & ";"
Le chiffre "2" a été supprimé. C'est grave Docteur?
 

jorge1201

XLDnaute Occasionnel
Avec cette configuration je peux ouvrir le formulaire sans avoir de message d'erreur et les séparateurs ont repris (un peu) leur place, cela ne me gêne pas. J'ai testé les procédures et ont l'air de fonctionner.
Penses-tu que ces modifications peuvent entraîner d'autres dysfonctionnements?

Mes références :
Visual Basic For Applications
Microsoft Excel 16.0 Object Library
OLE Automatation
Microsoft Office 16.0 Objet Library
Microsoft Forms 2.0 Object Library
Manquerait-il quelqu'une?
 

Discussions similaires

Réponses
16
Affichages
728
Réponses
2
Affichages
345
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…