Formulaire de recherche avec un UserForm ?

Bonjour à tous,

Je me présente en quelques lignes (car je suis nouveau sur le Forum). Je m'appel Fabrice, j'ai 23 ans. Je code sous EXCEL (en VBA) a titre personnel et associatif, mais toujours à but non lucratif.

Aujourd'hui je souhaiterai réaliser un formulaire de recherche (multicritères) a partir d'un UserForm. Je viens vers vous car je ne trouve pas beaucoup de réponses ailleur .

Contexte :

J'ai une base de données, dans une feuille nomée BDD.

J'ai un UserForm (nommé BASIC_Fr).

L'UserForm contiens une Listbox (apellée Form_Search_results)

Besoin :

L'UserForm contiens des critères de recherche. Le but est que l'utilisateur remplisse ces critères, et la ListBox s'actualise en fonction des critères recherché. La mise a jours de la ListBox se fait sans appui sur un bouton. Nous utiliserons l'action "modification du champs".

Je ne sais pas si celà est réalisable ? Car je ne trouve pas beaucoup d'aide concernant ce sujet .

Merci d'avance,

Fabrice.

PS: Le champs "Menu_ville_liste" est mis a jours a l'ouverture du formulaire avec les noms de ville présent dans la BDD. Je n'ai pas mis cette macro par soucis d'alléger le document. J'ai donc forcé la liste par une RowSource.

PS2: Je souhaiterai ne pas passer par un filtre si possible, car si le filtre ne trouve rien, alors il mettra une erreur (?)

PS3: Ce que je fais est pour mon association, nous souhaitons faire un état des lieux des restaurants, hotels, ... présent dans le coin (dans notre ville et autre).

185guide.zip (108.83 Ko)

bonjour fabdu57100 le forum

tu veux voir quoi comme;colonne dans la listbox?

car pour le moment ton code (si on peut l'appeler ainsi) car même l'initialize n'y est pas alors,??

Tu parles de la liste des villes et de la macro que tu n'as pas mis, c'est mieux on va la refaire .

Explique tu veux quoi comme colonne et je te fais cela

a+

papou

Bonjour,

Alors en fin de compte si vous regardez le Listbox du formulaire BASIC_Fr, j'ai déterminé des column width. Chaque "0" est une colone masquée en fin de compte.

Je vous ai mis une liste en pièce jointe.

Il faudrait aussi ajouter un bouton sous la liste, apellé "OK", ou au clic dessus un msgbox donnerait le numéro de l'ID de la ligne sélectionnée dans la liste (première colonne).

Bonne journée,

Fabrice.

PS: A ce qui parrait, sources internet, utiliser Listview serait plus facile ?

154liste.txt (619.00 Octets)

re bonjour Stefdu57100 le forum

bon alors ton fichier .txt c'est super mais comme je n'ai pas envie de chercher, puisque tu ne prends même pas le temps de répondre dans le fichier excel, j'ai donc fait une réponse avec 16 colonnes si c'est pas cela bah tant pis

tu ouvres tu cliques recherches et tu vérifies

a+

Papou

242stefdu57100-v2.zip (68.66 Ko)

re

une autre version avec des modifs (bien lire le post précédent) STP

a+

Papou

338fabdu57100-v3.zip (69.37 Ko)
paritec a écrit :

re bonjour Stefdu57100 le forum

bon alors ton fichier .txt c'est super mais comme je n'ai pas envie de chercher, puisque tu ne prends même pas le temps de répondre dans le fichier excel, j'ai donc fait une réponse avec 16 colonnes si c'est pas cela bah tant pis

tu ouvres tu cliques recherches et tu vérifies

a+

Papou

Bonsoir,

Je ne comprends pas ta réaction... Je ne peux faire plus simple que paramétrer l'option "columnWidth" de la Listbox, ou alors donner une explication textuelle... Je ne vois pas ce que tu attendais de plus? Surtout que le listbox était paramétré avec les colonnes (43) et l'affichage des entetes (columnsheads = true).

Le concept me plait bien, mais je le trouves compliqué. Enfin, je dit ca car je connais pas cette méthode encore lol. Mais je vais le regarder de plus prés afin de le comprendre .

Merci encore,

Fabdu57100

Bonsoir,

J'ai beau cherché, cependant je ne comprends pas le principe de fonctionnement (d'une part) et ensuite pourquoi les listes de données ne sont pas complete.

Serait-il possible d'avoir des explications SVP ?

Fab.

Bonjour Fab57100 le forum

les listes pas complètes? quelle Listes??????? les listes des combobox???

Peut-être une erreur de report?

Un exemple précis de recherche SVP avec les manques dans une feuille ajoutée que je puisse comparer

merci

a+

Papou

paritec a écrit :

Bonjour Fab57100 le forum

les listes pas complètes? quelle Listes??????? les listes des combobox???

Peut-être une erreur de report?

Un exemple précis de recherche SVP avec les manques dans une feuille ajoutée que je puisse comparer

merci

a+

Papou

Bonjour papou,

En fin de compte les combox prennent s'actualisent fonction des valeurs présentes dans la BDD. Question, est-ce possible qu'a chaque choix d'une combox, les autres s'actualisent fonction des choix disponibles après la première recherche ?

Je m'explique.

Ma BDD comporte les éléments suivants :

1, HOTEL, France, Paris

2, Restaurant, France, Lyon

3, HOTEL, Belgique, Gent

Premier exemple

Combox type : Hotel

Combox pays: (Je ne choisis rien)

Combox ville: (Je ne choisis rien)

Résulats dans la liste : Lignes 1 et 3.

Actualisation des COMBOX non remplies : Pays (France, Belgique), Ville (Paris, Gent)

Secondexemple

Combox type : (Je ne choisis rien)

Combox pays: France

Combox ville: (Je ne choisis rien)

Résulats dans la liste : Lignes 1 et 2.

Actualisation des COMBOX non remplies : Type (Hotel, restaurant), Ville (Paris, Lyon)

Vois-tu ce que je veux dire par hasards ?

Merci d'avance,

Fab.

Re Fab57100 le forum

oui en gros tu veux tout sans le préciser au départ !!!!

tu voulais pouvoir choisir n'importe quel choix dans les comboboxs sans ordre particulier, oui ou non ?????

alors que là maintenant tu veux des comboboxs en cascade, mais en respectant quel ordre???

Quelle est le nombre de ligne de ta Base à traiter?

a+

Papou

Laisse tomber finalement. Comme ca ca me conviens bien aussi, j'ai peur qu'aprés la recherche en cascade alourdisse et complique le code.

Cependant, je ne comprends pas comment faire pour prendre en compte toute les colonnes de ma BDD, car la, comme tu disais, tu n'en a pris qu'une partie.

De plus, le code n'affiche pas les heads (Ligne B7)bien que j'e les ai activées (columnheads= true).

Pourrais-tu m'aider STP ?

Re,

Aprés avoir bidouillé, et m'être planté plusieurs fois lol, j'ai trouvé comment modifier le nombre de colonnes a afficher. Cependant, toujours pas réussi a afficher les heads...

Je dois passer par une fonction sans doute ?

J'ai mis en PJ le fichier retravaillé (je me suis permis de modifier le nom des comboxs...)

Merci d'avance,

Fab.

203fabdu57100-v3.zip (63.35 Ko)

Bonjour Fab57100 le forum

Il semble que tu ne sais pas que les heads comme tu dis ne sont possible, que si , et uniquement si, tu utilises un rows source

pour charger la listbox donc dans ton cas !!!!!!

Pour les noms de combobox, décidément tu aimes les choses inutiles, mais bon pas grave , si tu trouves que cela est plus beau

et que la macro marche mieux avec des noms différents, c'est toi qui vois

a+

papou

PS: maintenant si tu veux une plus belle présentation tu peux modifier et mettre une listview à la place de la listbox

quand à l'affichage de toutes les colonnes, c'était déjà fait sauf que j'en affichais 16, c'est déjà beaucoup et à la limite du lisible

l semble que tu ne sais pas que les heads comme tu dis ne sont possible, que si , et uniquement si, tu utilises un rows source

pour charger la listbox donc dans ton cas !!!!!!

Je n'ai pas compris ceci en fin de compte... Ca veux dire quoi, que c'est possible ou pas ?

En fin de compte je n'affiches pas les 43. Certaines colonnes sont masquées, et au final j'en affiche donc 12 (parmis les 43).

Dans le cas ou seul une Listview permet ceci, est-ce possible de convertir ma Listbox en Listview tout en conservant "l'intelligence de la recherche" ?

Re Fab57100 le forum

cela signifie que dans ton cas ce n'est pas possible, puisque tu n'utilises pas un row source pour remplir la listbox

il faut vraiment tout te signifier mot par mot, mais bon.

Pour la listview ou la listbox, cela concerne l'affichage des données, la recherche c'est autre chose

Je pense que tu découvres le vba, alors tu ne comprends pas encore bien tout des macros

La listview est plus présentable, mais plus lourde à charger et plus lente c'est tout

la recherche elle restera la même et tout aussi rapide.

Par contre convertir une listview en listbox, oui pourquoi pas changer une clio, c'est un véhicule en un joli 44 tonnes, c'est aussi un véhicule.

Non une listbox c'est un objet, et une listview un autre objet, complètement différent

a+

papou

paritec a écrit :

Re Fab57100 le forum

cela signifie que dans ton cas ce n'est pas possible, puisque tu n'utilises pas un row source pour remplir la listbox

il faut vraiment tout te signifier mot par mot, mais bon.

Non, j'ai simplement comme toute personne je ne comprends pas une phrase qui n'a pas de sens, enfin :

Il semble que tu ne sais pas que les heads comme tu dis ne sont possible, que si , et uniquement si, tu utilises un rows source pour charger la listbox donc dans ton cas !!!!!! (En rouge la partie que je cite...)

Pour la listview ou la listbox, cela concerne l'affichage des données, la recherche c'est autre chose

Je pense que tu découvres le vba, alors tu ne comprends pas encore bien tout des macros

Je connais les MACROS, cependant le fonctionnement les Listbox ou Listview, ou encore des recherches....

La listview est plus présentable, mais plus lourde à charger et plus lente c'est tout

la recherche elle restera la même et tout aussi rapide.

Est-il possible dans ce cas de voir pour réaliser une listview SVP ?

Je me propose de paramétrer les heads de la Listview, et vous de me faire la partie recherche ?

Sur le principe, on garde la même recherche qu'avant, sauf que cette fois ci j'aimerai un bouron supplémentaire permettant d'afficher toute la BDD (par exemple je recherche, ca me plait pas, je clique dessus, et toute la BDD s'affiche en faisant un RAZ des COMBOX)

262guide-listviex.zip (103.82 Ko)

Bonjour Fab57100 le forum

Je connais les MACROS, cependant le fonctionnement les Listbox ou Listview, ou encore des recherches...

Tu connais les macros et tu n'arrives pas à dissocier la partie recherche ??? je suis surpris!

Il semble que tu ne sais pas que les heads comme tu dis ne sont possible, que si , et uniquement si, tu utilises un rows source pour charger la listbox donc dans ton cas !!!!!! (En rouge la partie que je cite...)

Non, j'ai simplement comme toute personne je ne comprends pas une phrase qui n'a pas de sens, enfin :

Si tu connaissais les macros, excuses moi, mais tu ne tenterais pas de t'en sortir avec une leçon de français, si tu n'arrives pas à voir comment j'ai chargé la liste de la listbox, là oui tu peux effectivement ne pas comprendre la phrase ci-dessus.

Alors je vais t'expliquer, puisque tu connais les macros, la liste de la listbox, je la charge directement avec un tableau donc il va de soi que si la liste est chargée par un tableau, elle ne l'est pas par un rowsource, et par conséquent, les entêtes de colonnes de la listbox tu ne peux pas les avoir, car tu ne peux les avoir que si tu charges la liste avec la propriété rowsource de la listbox concernée.

Est-il possible dans ce cas de voir pour réaliser une listview SVP ?

Je me propose de paramétrer les heads de la Listview, et vous de me faire la partie recherche ?

Oui c'est possible, mais connaissant les macros, je suis surpris que tu me demandes de faire cela, mais oui, moi je peux le faire sans problèmes

a+

papou

Bonjour,

Je connais les MACROS, mais la base (boucles, if, else, enregistrement auto, selection cellule). Je sais lire une macro, mais je ne comprends pas forcement l'utilisation du "Dictionnary" utilisé.

Serait-il possible dans ce cas de réaliser le formulaire en ListView ? J'ai mis hier en PJ le Listview deja paramétré...

Fab.

Re Fab57100 le forum

ton fichier en retour

Dictionary permet de créer des listes sans doublons

je pense que cette fois tu vas avoir ce que tu souhaites

a+

papou

387fabdu57100-v4.zip (72.37 Ko)

Erreur a l'execution de la Liste (dès l'ouverture de l'userform) :

"Impossible de charger le objet car il n'est pas disponnible sur cette machine".

Ensuite l'UserForm s'ouvre et la ListView ne s'affiche pas...

Une idée de cette erreur ?

Fab.

Rechercher des sujets similaires à "formulaire recherche userform"