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

XL 2016 Limiter la Saisie dans un Combobox

aurelio.ewane

XLDnaute Occasionnel
Bonjour jai un combobox qui contient une liste delements
Jaimerais savoir comment limiter la saisie dans mon combobx et n'autoriser que les valeurs qui sy trouvent du genre lorsque je commences a saisir une lettre ca charge dans mon combobox tous les elements de ma liste qui on se mot
une saisie intelligente je veux dire

Merci a tous
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour @Dudu2
ben elle est simple et nécessite pas de classe et autre usine à gaz pour un simple filtre sur une colonne
après peut être que pour un traitement plus profond ou plus complexe en terme de filtre ,je ne dis pas ,mais là ma foie
 

Dudu2

XLDnaute Barbatruc
ben elle est simple et nécessite pas de classe et autre usine à gaz pour un simple filtre sur une colonne
Tu n'as pas tout suivi. La classe c'est pour traiter l'affichage multi-colonnes en zone texte de la ComboBox que j'ai combiné avec la saisie filtrée en mutli-colonnes. Ce sont 2 ressources différentes: ici et . Elles peuvent être utilisées séparément ou conjointement.
Comme je l'ai précisé dans mon post précédent, la saisie filtrée seule en multi-colonnes est possible pour être au plus simple. Perso je combinerais les 2 car c'est quand même plus... classe .
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
donc si j'ai bien compris
tu affiche dans ton pseudo value de la combo avec tes mask label ou je ne sais quoi
le text de toutes les colonnes
c'est bien ca ?
si c'est ca je n'en vois pas l'utilité mais bon
enfin surtout que dans un userform en général une combobox ou listbox d'ailleurs
et sensée nous offrir le choix de choisir une ligne (multicolonne ou pas)et de retranscrire les elements de cette ligne dans des label ou textbox ou autres dans le userform
perso je me pose une question
a quoi sert d'en rajouter X( X=le nombre de colonnes) pour faire un visuel supplantant celui du value original
après je te le redis si tu veux (toujours pour la même raison) je te le fait avec simplement la combo
car je te le répète en matchentry none le value du combo n'est qu'un textbox

ce la dit j'insiste sur mon interrogation de l'utilité d'un tel procédé

si c'est une question de "classe" en terme clair d'en mettre plein le mirettes je trouve cela un peu cher payer pour une simple combobox
et vu le niveau de notre camarade( sans le dénigrer) je suis pas sur que ça soit l'aider de l'embarquer dans des procédés de pseudo controls même si c'est amusant
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Je pense que notre camarade, comme tu dis, ne saura pas utiliser la ressource ou même ton code. Enfin on verra.

tu affiche dans ton pseudo value de la combo avec tes mask label ou je ne sais quoi
le text de toutes les colonnes
c'est bien ca ?
Oui ce sont bien des Labels, pas des "je ne sais quoi" (de merde si je précise ta pensée positive) !

après je te le redis si tu veux (toujours pour la même raison) je te le fait avec simplement la combo
car je te le répète en matchentry none le value du combo n'est qu'un textbox
Si tu trafiques la zone de texte de la ComboBox pour y afficher ton méli-mélo de textes des colonnes raboutés avec un espace, d'une part tu ne seras pas aligné sur les colonnes, d'autre part ton ListIndex sera toujours -1 ce qui plombe toute la logique. Donc ta bidouille c'est de la daube.

Si je résume tes interrogations...

1 - Quelle peut-être l'utilité d'afficher en zone texte de la ComboBox toutes les colonnes et pas seulement la colonne TextColumn comme le fait Excel ?
Je dirais d'abord parce que j'en ai eu besoin dans un des mes développements applicatifs.
Ensuite par ce que cette question revient de manière récurrente sur les forums.
Enfin parce que, depuis la publication de la ressource, plus d'une centaine de personnes l'ont téléchargée et y ont donc trouvé un intérêt, ce qui me donne le plaisir d'avoir été utile à certains.

2 - L'utilisation d'une Classe est-elle juste pour "en mettre plein le mirettes" selon ton expression ?
Je trouve cette réflexion un tantinet déplacée.
En fait je voue un culte à la simplicité et je te rassures tout de suite, l'utilisation de la Classe n'est pas pour frimer dans les salons VBA de XLD ou autres. J'aurais aimé m'en passer mais pour capturer un évènement sur un Control créé dynamiquement, je n'ai pas trouvé d'autre solution. On parle ici de l'affichage multi-colonnes en zone texte de la ComboBox.
 

patricktoulon

XLDnaute Barbatruc
re
1° je n'ai jamais dis que c’était de la daube ton truc (seulement un doute sur l'utilité)
2°dans "je ne sais quoi" il faut pas entendre de la "m..."
3° que tu en aie eu l'utilité je veux bien , qu'on l'ai téléchargé 10 fois 100 fois ou 1000
ne veux pas dire qu'il est utilisé

4° ta classe
et pourquoi dans ce cas là ne pas intégrer les labels directement et seulement les ajuster par vba

5°ou même mieux!!!!!! pourquoi ne pas créer la combo avec et dans le userform une toute petite fonction ADD
comme ca tu gère ta combo dans la classe avec tes labels
et comme dans ce cas la on a besoins d'une affiliation (label/combo) c'est encore plus simple

la zone de texte nul besoins de la trafiquer
mais comme a ton Habitude a chaque fois ton ego en prends un coup alors tu écoute a moitié

je répète donc MATCHENTRY NONE
pour que le "pseudo value" affiche la ligne il faut qu'il soit le seul non ?
ça y est ça percute ????

Et en ce qui concerne notre camarade je ne pense pas que toute cette artillerie lui soit utile pour son réel besoins
 

Dudu2

XLDnaute Barbatruc
C'est toi qui me parles d'égo !

Pour répondre à tes 4° et 5°.
Il faut comprendre que les ressources en question (Affichage multi-colonnes, Saisie filtrée) ne créent pas les ComboBox. Ce sont les ComboBox créées par les utilisateurs des ressources avec leurs propriétés et leur code.

Donc je me greffe dessus pour réaliser les fonctions souhaitées via un module (2 pour l'Affichage multi-colonnes puisqu'il faut cette fameuse classe).

L'utilisateur n'a que des choses très simples à faire:
  1. Insérer le(s) module(s) de la Ressource dans son projet
  2. Sur tel ou tel évènement dans sa ComboBox, simplement appeler une fonction qui se trouve dans le(s) module(s) en question.
Aucune autre modification ou insertion de code chez l'utilisateur n'est à faire.
Pourquoi ? Parce que ça devient trop compliqué à expliquer et à mettre en œuvre. Simplicité avant tout !

Alors oui, je pourrais faire comme tu le suggères, c.a.d. faire du code à insérer par l'utilisateur, mais ça oblige à décrire une mise en place de code à ajouter sur laquelle les utilisateurs vont ramer alors même qu'ils ont leur propre code déjà en place.

C'est pour ça que je fais des modules indépendants et ne demande à l'utilisateur qu'un minimum de modif dans son code consistant, sur tel ou tel évènement dans sa ComboBox, à appeler une fonction.
Rien de plus. Alors effectivement, c'est moins facile (pour moi), oblige parfois à créer une classe (hélas !), mais c'est simple pour l'utilisateur et c'est tout ce qui compte.
 

Dudu2

XLDnaute Barbatruc
Bonsoir @Cousinhub,
J'ai vu passer ton message et je voudrais juste préciser que "la question a priori simple" (pour te citer) est loin d'avoir une réponse aussi simple et la preuve en est que @esaurelien n'a pas pu / su utiliser le code de @Dranreb, ni celui de @patricktoulon, pas plus que le mien en ressource qui est pourtant très facile à intégrer.

De plus les échanges entre @patricktoulon et @Dudu2, certes assez polémiques parfois, ne sont pas spécialement là pour monopoliser le sujet du malheureux @esaurelien mais pour challenger les solutions que chacun tente d'apporter à son problème. C'est souvent source d'inspiration et d'amélioration d'un coté comme de l'autre.

De toutes façons la discussion est, à mon avis, arrivée à son terme. Souhaitons à @esaurelien d'en tirer le meilleur parti.
 
Dernière édition:

Zon

XLDnaute Impliqué
Salut ,

Un fil animé ...

n'oublions pas qu'un bon programme est celui qui fonctionne.

@Dranreb pas une ligne de commentaire c'est pas trop esprit forum d'entraide même si je ne suis pas un modèle .. on peut comprendre la réaction de @Cousinhub ,

@Dudu2 lui c'est très bien documenté le plus facilement adaptable à mon humble avis.

je n'oublie pas notre ami de la rade, très en ruban en ce moment ...

J'aimerais améliorer la taille de mon Kiki mais je ne peux pas modifier le post. Qq1 a une idée ?? David n'a pas répondu à ma demande.

A+++
 

Dranreb

XLDnaute Barbatruc
Je rappelle qu'il y a une page d'aide guide d'utilisation de toutes les ressources du complément .xlam, dont le précurseur .xlsm est disponible dans cette fourniture disponible en téléchargement, y compris une rubrique consacrée au module standard de service MSujetCBx qui en fait partie.
Quand aux procédures utilisatrices dans les UserForm, quand elles utilisent ces fournitures elles sont généralement tellement courtes, à part la Sub UserForm_Initialize où on y définit pratiquement tout, que des commentaires alourdiraient inutilement …
 
Dernière édition:
Réactions: Zon

aurelio.ewane

XLDnaute Occasionnel
jai beaucoup apprecie
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Information: mon module de service est aussi équipé d'une fonction SujMultiCol qui permet d'établir une liste classée sans doublon de valeurs présentes dans plusieurs colonnes successives, voire incrémentées avec un certain pas autre que 1. Mais c'est toujours pour une ComboBox à une seule colonne. De toute façon plusieurs colonnes c'est une source de problème potentiel. En effet, quand il y a plusieurs occurrences d'une clé donnée, laquelle n'est toujours proposée qu'une fois dans la liste, quoi afficher dans les colonnes supplémentaires lorsqu'elle sont différentes d'une occurence à l'autre ? Quant à l'affichage de toutes les occurrences après le choix, il est très facile, mais dans une ListBox, alors, jamais dans la ComboBox.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…