Recherche et affichage des résultats dans un userform

Bonjour à tous,

Tout d'abord, je tiens à vous remercier pour votre implication, l'altruisme et la générosité que certains mettent dans ces forum afin d'aider les personnes tel que moi

Je tiens en effet à préciser que comme beaucoup, je suis un complet béotien en VBA. Je m’y intéresse depuis une semaine, et je suis déjà relativement fier du résultat obtenu (création d’un userform, avec toute une série de « textbox », de « combobox » et de « optionbutton », et quand je valide le userform, il rajoute une ligne dans le tableau de ma feuille de calcul, avec toutes les colonnes correspondantes, en ce compris les menus déroulants permettant de modifier éventuellement les entrées faites avec les « combobox » du userform, selon les mêmes liste préétablies).

Maintenant, je bloque depuis 3 jours sur l’opération inverse, à savoir une possibilité de recherche sur base d’un « combobox » qui, selon le choix, irait rechercher dans mon tableau, toutes les entrées correspondantes avec les résultats qui apparaissent dans le même userform (ou un nouveau, mais selon la même architecture afin de pouvoir y apporter d’éventuelles modifications). PS: le critère de choix est la colonne E de ma feuille "Liste dossiers".

Suis-je assez clair dans mon explication ? En gros, une valeur sélectionnée dans un combobox (dont le menu déroulant reprendrait les valeurs de la colonne E de ma feuille "Liste dossiers"), et pour cette valeur sélectionnée, reprendre les entrées de toute la ligne pour les afficher dans un userform via des textbox ou combobox (selonl’entrée) modifiables. Petite difficulté : la combobox de « recherche » doit pouvoir intégrer les nouvelles entrées au fur et à mesure que mon tableau se complétera).

Je joints le fichier en exemple, et je me tiens à disposition pour d'éventuels compléments d'information.

Je pourrais très bien faire cette recherche sur une feuille complémentaire avec les fonctions EQUIV et INDEX (que je maitrise plutôt bien), mais vu que ce fichier est susceptible d'être utilisé par plusieurs personnes, je souhaiterai le rendre plus conviviale via des userform (ce qui limiterait aussi le nombre de mauvaises manipulations vu que les changements ne se ferait que par l'utilisation du userform)

Merci pour votre aide,

Luc

(Imaginez bien que j'ai réalisé ce fichier xlsm avec le userform, les menu déroulant, etc. etc. alors que la semaine dernière, je n'avais jamais utilisé excel de ma vie ! Je suis un peu fier de moi, sur ce coup )

Bonjour,

Pour ton coup d'essai tu ne t'es pas lancé dans quelque chose de simple...

On va commencer par une mauvaise nouvelle : Il va falloir modifier quelque peu ta feuille de travail.

Il faut partir sur la base de ce que j'ai modifié. Les colonnes qui contiennent juste un tiret doivent être supprimées.

J'ai modifié un peu la base pour que la première ligne soit la ligne d'en-tête.

Les sur-titre sont mis dans des zones de texte pour ne pas détruire la base.

On ne quadrille pas toute la feuille c'est le tableau qui quadrille la feuille au fur et à mesure ou tu la remplis.

Si c'est l'actuelle colonne E qui est la colonne de recherche et si elle ne contient aucun doublon. C'est elle qui devrait être en premier.

Si la BD est remplie via le UserForm, il n'y a aucune raison de laisser des listes de validation dans la BD ! Ces validations doivent être dans ton UserForm !

J'ai supprimé tous les boutons, le tri se fait en cliquant sur les cellules jaunes.

Pour l'instant le Userform est opérationnel uniquement pour Valider les TextBox 1 2 et 3

Bon ça te donne déjà un aperçu de la manière dont on peut concevoir le truc !

Après je te dis pas que ça va être simple...

A+

Ouh làààààà, tu as foutu un peu le bordel dans mon beau tableau... Ainsi que dans mon moral !

Moi qui étais fier du résultat obtenu alors que je n'avais jamais manipulé excel (enfin si, mais juste comme feuille de calcul de base), et surtout pour la première fois que je chipote avec VBA (je n'avais même jamais fait la moindre macro!!!!)...

En fait, je suis parti de la feuille de base avec la structure que je dois respecter (convention de service).

Le tri ne doit être effectif que sur certaines colonnes, c'est pourquoi j'avais créé des boutons TRI uniquement sur les colonnes qui doivent permettre un tri. J'avais essayé dans un premier temps en plaçant des filtres sur chaque colonne, comme tu l'as fait, puis en cherchant pour voir si on ne savait pas placer uniquement des filtres sur les colonnes qui m'intéressait, mais je n'ai jamais trouvé, et c'est ce qui m'a poussé à me lancer dans la programmation en VBA, uniquement à l'aide de tuto et site de formation en ligne.

Les listes de validations dans la feuille ont l'intérêt de pouvoir corriger une cellule directement dans le tableau en utilisant uniquement les choix possible. C'est d'ailleurs en cherchant comment attribuer ces listes à la nouvelle ligne créée que j'ai pensé à copier la ligne du dessous pour créer cette nouvelle ligne, puis d'en effacer le contenu pour avoir une ligne vierge mais avec les formats de cellule et les listes de validation. Je comprends que ces listes fassent double emploi avec le userform d'encodage, mais ça permet de mettre à jour facilement sans devoir lancer un userform.

Pour la recherche, c'est bien sur la colonne E qu'elle doit s'effectuer. Et en fait, c'est la structure même de nos gestions de dossier, chacune des trois parties, séparées par des tirets, ont leur signification dans l'identification d'un dossier. On ne peut pas les intervertir (et les tirets ont aussi leur importance pour la lecture du numéro de dossier complet), mais c'est uniquement sur la troisième partie, composée d'une lettre et 3 chiffres, que doit s'effectuer la recherche.

Enfin bref, je te remercie infiniment pour les pistes et solutions, mais sans vouloir te vexer, cela m'éloigne un peu du résultat escompté et qui m'a été demandé par mes responsables.

C'est sur cette solution imaginée que je bute depuis 2 jours, car je ne sais pas comment prendre en compte la contenu de mon textbox, pour rechercher la ligne de ce contenu dans la colonne E, puis attribuer les contenus des cellules de cette ligne à d'autres textbox.

Dans un contexte professionnel, ça ne me parait pas possible si je considère les § 3 et 5 de ton premier message.

Après on peut toujours pinailler, bricoler quelques UserForm ici ou là...

Mais tel que tu le présentes on reste dans le cadre du petit boulot qu'on donne au stagiaire qui vient passer 15 jours gratis dans l'entreprise.

Résultat opérationnel prévisible : Aucun.

Bon je te dis ça pour ouvrir le débat hein : s'il y a qui veulent prendre le bébé en charge dans ces conditions, faut pas qu'ils se privent !

Sorry...

Bonne continuation.

A+

Mais tel que tu le présentes on reste dans le cadre du petit boulot qu'on donne au stagiaire qui vient passer 15 jours gratis dans l'entreprise.

J'ai 20 ans de service dans la boite

Mais voilà, changement de direction en janvier, et la nouvelle directrice entend rationaliser et améliorer l'organisation du service.

En soi, c'est louable, mais entre utopie et réalité... Nous n'avons pas d'informaticiens (enfin si, mais des gestionnaires réseaux, pas des programmeurs) capables de développer ce genre de truc.

Du coup, c'est moi qui me suis proposé, mais de fil en aiguille, on passe d'un simple inventaire à une feuille de calcul avec filtres, puis avec recherche (le fameux fichier initial pour lequel j'ai utilisé INDEX et EQUIV), puis on en est à une fenêtre d'encodage, et une page de recherche imprimable (que je souhaiterai voir apparaitre sous forme d'un userform)

J'ai 20 ans de service dans la boite

Je n'en doute pas ! Et je ne voulais pas être désagréable...

C'était juste une image : Inutile de programmer si c'est pour faire comme avec une feuille de papier.

Avec Excel si on veut faire du bon boulot -"professionnel"- il y a un minimum de règle à respecter.

Et "avec la structure que je dois respecter" n'est guère compatible avec le but recherché.

Cordialement.

A+

Tu ne m'es pas désagréable, tracasse, je tenais juste à préciser que je suis pas un stagiaire à qui on demande un travail gratos !

Je comprends très bien ton concept de "professionnel", mais entendons-nous, je débute en vba, et mon côté "artisanal" fait aussi partie de mon charme. Alors, oui, si on veut, on peut traduire ça par :"pour faire comme on fait sur papier", mais avec ce petit plus qu'offre excel et vba, tout en restant à mon niveau de compréhension

Simplifions alors le problème:

J'ai un tableau, avec des cases remplies de la ligne 1 à la ligne 10, jusque la colonne E (par exemple)

Imaginons qu'en cell A5, j'ai la valeur 5.

Est-il possible de créer un userform avec une textbox, et quand je mets "5" dans cette textbox, il "scanne" ma colonne A pour rechercher dans quelle ligne se trouve le 5 (soit dans ce cas défini, la ligne 5, mais ça reste un exemple), puis que dans d'autres textbox sur le même userform, il inscrive automatiquement les valeurs des autres colonnes de la ligne 5 dans autant de textbox différentes.

Avec par exemple des commande genre textbox.value, find, etc. etc.

j'en conviens que ça reste simplissime et que ça fait bricolage, mais cela me suffirait largement...

"La parabole du stagiaire"

Tu ne m'as visiblement pas compris. C'est sans doute de ma faute, avec mes formules ALAKON et à l'emporte pièce :

C'est seulement une image. Je voulais simplement dire par là que dans l'esprit ça ressemble tout à fait à ce genre de travail qu'on donne à des stagiaires sans se soucier de savoir si c'est possible ou pas. Parce que l'employeur n'en a visiblement rien à foutre : il s'est embarqué dans cette histoire de stagiaire à son corps défendant et pour ne pas lui donner à tailler les crayons, on lui donne un truc sans trop de poser la question de savoir si c'est possible ou pas.

"professionnel"

Je n'ai pas les chevilles qui enflent : D'ailleurs je ne suis pas un professionnel !

Mais je prétend essayer de donner à ceux qui passent par moi un outil "un minimum fiable et pratique".

Pas seulement une réponse idiote pour encourager la victime à alimenter le forum et finalement se rendre compte au bout de plusieurs mois que ce truc est complètement dingue...

Alors pour répondre à ta question telle que tu la formules :

Oui, oui c'est possible... Encore faut-il avoir un tableau !

Or ton truc n'est pas un tableau au sens d'Excel.

Si ton deal "c'est on ne touche pas au tableau actuel" alors ce n'est pas possible.

Les modifications que j'ai faites constituent un pré-requis incontournable (auquel j'ai omis volontairement et provisoirement une autre nécessité : l'ajout d'une colonne index)

Si on n'a pas compris cela, alors on continue de bricoler (ce n'est pas péjoratif) avec des formules, des validations et tout l'arsenal conventionnel d'Excel. Enfin bref ce que tu connais.

Mais l'utilisation d'un UserForm c'est pas seulement un jeu de construction ou le visuel compte plus que le fonctionnel. C'est aussi et surtout (et là je te renvoie encore une fois aux $ 3 et 5 de ta demande initiale) un outil suffisamment "fiable et pratique" qui permettent aux collègues de pas se faire suer toutes les 5 minutes pour rattraper des erreurs grossières.

L'utilisation d'un UserForm c'est -pour moi- un bonne quinzaine de jours de conception intense. Et pour nous peut-être 2 ou 3 mois voire plus...d'échange nombreux pour a mise au point et la fiabilisation du bébé.

Alors je vais écourter un peu mon exposé par ce que comme je suis parti, je peux t'en faire 4 pages... Il reste une équivoque que je n'ai pas levée mais que j'ai quand même prise en compte : Le titre de ton fil indique recherche et affichage mais ton explication montre bien qu'on est dans un contexte de UserForm "intégral" qui englobe à la fois toutes les opération de gestion du tableau :

Ajout, Recherche, Visualisation Modification et potentiellement... suppression d'un enregistrement.

Ce qui est somme toute le b + a = ba des UserForm...

Alors dans ce contexte...

"la structure que je dois respecter (convention de service)"

Ça ne tient pas la route !

La plupart des responsables savent que l'informatisation passe par des modifications profondes dans les habitudes de travail : C'est pas juste cosmétique, on passe d'un tableau à un UserForm, mais on ne touche surtout à rien :

C'est on passe du tableau à un UserForm... mais le tableau on s'en fiche parce qu'on ne le verra plus.

On ne travaillera plus que sur le UserForm !

Qu'il y ait des colonnes qui servent à rien on s'en fiche : On ne les verra plus.

Que les entêtes soient sur une ligne au lieu de 2 on s'en fiche : On ne les verra plus.

Bien sur je caricature un peu. Encore que...

Il n'y a qu'un cas qui fasse que la structure ne soit pas modifiable : ce serait que le tableau en question soit en lien avec un autre système de gestion informatique (style ERP SAP GPAO) : Ou je me trompe fort ou ce n'est pas le cas ici.

Pour en terminer : L'utilisation d'un UserForm ne se résume pas à une simple question de Recherche / Affichage : C'est une mécanique complexe qui consiste à synchroniser les lignes d'un tableau avec les enregistrements successifs de ton UserForm. On parle alors de "navigation". RECHERCHEV INDEX EQUIV c'était avant (quand tu voulais faire une recherche/visualisation sur feuille)

L'avantage du UserForm est qu'il permet des opérations de vérifications, mise en forme complexes que ne permet pas la feuille.

L'inconvénient du UserForm est qu'il oblige à des contraintes de programmation rigoureuses.

Au nombre desquelles une gestion tabulaire conventionnelle. C'est à dire du type de celle que je t'ai exposée et qui est celle communément admise dans la communauté Excel.

En résumé, ou tu es capable de faire valoir auprès collègues et/ou hiérarchie qu'il va peut-être falloir s'adapter à de menus changements, ou bien tu laisses tomber et tu t'occupes de ton jardin...

Nota : Je ne parle pas et ne mésestime pas ce que tu as fais, mais pour prendre une expression imagée : Tu n'as même pas ouvert la porte, tu as tout juste mis la clef dans la serrure !

Ouvrir la porte te précipitera dans un monde dont tu n'as même pas idée et dont l'enregistreur de macro n'est que la clef.

Ce monde est complexe et exigeant c'est pourquoi je préfère annoncer la couleur franchement.

Cordialement.

A+

Rechercher des sujets similaires à "recherche affichage resultats userform"