Outil de comparaison

Bonjour,

Je suis débutant en VB et je sollicite votre aide s'il vous plaît. Si vous m'apportez une réponse, j'aimerais bien

qu'elle soit écrite avec des fonctions simples, pas trop compliquées afin que je puisse les comprendre, les apprendre et les réutiliser

par moi-même plus tard. Merci

Mon problème:

NOUS SOMMES DANS L'ONGLET "donnees":

Je voudrais créer un outil de comparaison. J'ai déjà un peu commencer. En cliquant sur le bouton "Comparison", on

a une fenêtre qui nous propose d'écrire ou sélectionner dans la liste LE VERBE à COMPARER ( je parle des verbes de la colonne jaune).

- 1er problème: je n'arrive pas à ajouter les verbes dans la liste de sélection justement! Il faudrait que même si un autre jour, je rajoute un nouveau verbe, qu'il s'inscrive dans la liste à la suite des autres verbes.

Puis une fois le verbe sélectionné, on peut soit cliquer sur Annul ou Compare. J'ai réglé le bouton Annul mais il me reste le plus important: Compare.

  • 2ème problème: le bouton Compare. Je veux qu'en cliquant dessus, une première MSGBox par exemple nous dise 'le verbe sélectionné "nom_verbe" est présent dans les onglets suivants: "Nom_Onglet". (Pour ça on regarde les 'Oui' dans les colonnes des différents onglets).
  • 3eme problème: après ce message, il faut qu'un nouvel onglet (en bas de la feuille excel donc) se crée pour comporter les tableaux correspondant aux endroits où le verbe sélectionné est présent. Un exemple concret est présent dans l'excel joint ici après.

Il faudrait que cet outil de comparaison prenne en compte le fait de rajouter d'autres colonnes d'onglets avant les 2 colonnes de l'Onglet 1.

Si vous pouvez me résoudre ne serait-ce qu'une partie d'une problème, je serai content vu mon faible niveau

Si des points vous semblent flous, n'hésitez pas à me demander.

Merci beaucouuuuuuuup

10classeur4.xlsm (37.97 Ko)

Salut,

Ta demande est un embrouillamini incroyable

Tout d’abord tu places des indications à plusieurs en droit – sur ton fil et dans ton fichier Excel – et il faut faire des allers-retours entre ces deux textes afin de voir ce qui diffère, ce qui se complète, etc. L’idéal selon moi est de rester sur le fil, c’est plus aisé de voir l’historique.

Ensuite il n’est pas facile de comprendre ce que tu as déjà à disposition et ce que tu désirerais voir automatiser. Si tu avais par exemple écrit en noir ce que tu as déjà ou ce que tu introduis normalement toi et en rouge ce que tu voudrais voir automatiser, il aurait été plus facile de te comprendre.

Question 1) Est-ce que tu veux pouvoir introduire des données dans le tableau AI1:AP12 de la feuille ‘donnees’ et que celles-ci soient reportées automatiquement dans les différents tableaux des feuilles dont le nom commence par ‘Onglet’ ou est-ce le contraire, tu veux pouvoir modifier les feuilles ‘Onglet’ et tu voudrais que le tableau mentionné ci-dessus se remplisse automatiquement ?

Question 2) Selon ta réponse à la question 1, si tu veux bien pouvoir inscrire tes données sur la feuille ‘donnees’ et qu’elles soient réparties aux différentes feuilles ‘Onglet’, comment veux-tu remplir les tableaux 1 à 4 des feuilles ‘Onglet’ ? Lorsqu’une colonne est pleine, tu commences simplement à remplir la prochaine ? Et lorsque la dernière colonne est pleine ???

Question 3) Pourquoi as-tu toutes ces colonnes vides – de la colonne E à la colonne AH – sur ta feuille ‘donnees’ ?

Question 4) Tu parles de ‘verbes’, mais s’il y a bien des verbes dans la colonne C de ta feuille ‘donnees’, il y a plein d’autres mots qui ne sont pas des verbes. Faut-il faire la différence entre les verbes et les autres mots ou est-ce que tu utilises une dénomination erronée ('verbes' à la place de 'mots') ?

Tu as placé une feuille ‘Onglet Exemple forum’, mais celle-ci est parfaitement vide Mais dans tous les cas, il y a déjà assez de questions à résoudre jusque-là pour laisser cette partie du problème de côté pour l’instant. Je te propose que nous voyions ça plus tard.

Question subsidiaire) Pourquoi n’utilises-tu pas le travail que je t’ai fourni sur ton autre fil ?

Quand tu donnes des explications, fais bien référence aux noms des objets Excel (feuilles, plages, cellules, etc.) afin que l’on comprenne facilement de quoi tu parles et évite de dire ‘je veux’ – qui ressemble à un ordre – mais dit plutôt ‘je voudrais’, ‘je souhaiterais’, ‘je préfèrerais’, etc.

A te relire.

NB : juste après avoir écrit toute ma tartine ci-dessus et juste avant de poster, je suis allé voir tes anciennes demandes et j’ai remarqué que gmb t’avais déjà fourni un code qui exécutait une bonne partie de ce que tu redemandes maintenant. Question finale) Pourquoi n’utilises-tu pas le travail de gmb ? N’es-tu pas en train de nous demander de refaire un code existant ?????

Re,

Merci Yvouille pour tes conseils

Réponse 1) Non je ne veux rien introduire dans la plage AI1:AP12 de la feuille ‘donnees’ . Et je ne veux pas qu'elles soient reportées automatiquement dans les feuilles 'Onglet'. Ce travail a été fait par gmb justement.

Réponse 2) Cela aussi a été fait par gmb. Donc je ne demande pas de l'aide pour ceci.

Réponse 3) Car un autre jour, ces colonnes seront remplies par autre chose qui ne nécessitera pas de macros. Donc j'ai préféré les masquer.

Réponse 4) C'est vrai que je me suis trompé pour l'attribution "verbes". Quand je disais "verbes" je pensais en fait à la colonne C de mots en fond jaune. Les autres mots ne sont pas à traiter.

Je reprend mon problème avec un peu plus d'éclaircies, excusez-moi de la confusion qu'il y a eu:

- Alors, nous nous situons d'abord dans la feuille " donnees ". La macro de travail se situe dans le bouton "comparison".

En cliquant dessus, nous apparaît une fenêtre. Je souhaiterais dans un premier temps que la Combobox propose la liste des mots présents en colonne C à fond jaune.

Pour l'instant je sollicite votre aide pour cette première étape.

Merci

2classeur5.xlsm (20.72 Ko)

Re,

Je t’ai demandé d’être précis afin que nous ne perdions pas notre temps ni toi, ni moi. Maintenant s’il n’y a qu’une seule feuille dans ton fichier, il est peut-être inutile de me dire quelle feuille est concernée ou je vais penser que tu te fous de ma gueule.

Dans le fichier ci-joint, la partie du travail désiré.

NB : Tu n'as pas répondu à ma question subsidiaire

Cordialement.

10classeur5-v1.xlsm (21.02 Ko)

Re,

Je ne me fous pas de toi, désolé d'avoir donné cette impression.

Si si je l'ai toujours ton travail mais dans un autre fichier excel, pas celui que je joins dans ce fil.

Merci Yvouille pour cette première version. Ca marche très bien, je le conserve .

Maintenant, le seul problème de cette fenêtre "comparison" qui apparaît, c'est le bouton rouge "compare" justement.

Voilà comment ça se passe :

Après avoir choisi un mot dans la liste de ComboBox, on clique sur "compare". Ce bouton "compare" nous renvoie une MSGbox qui aura pour phrase: "le mot ... est présent dans l'Onglet ..., l'Onglet ..., et l'Onglet ...

Concernant le code:

A chaque mot de la colonne jaune, correspond les colonnes Oui/Non et Place et cela pour chaque colonne Onglet.

Exemple, supposons que l'on travaille dans la colonne Onglet 1, on dit alors si Oui ou Non le mot "manger" est présent dans l'onglet 1. Si oui alors l'utilisateur de ce Excel entrera manuellement la "place" de "manger" dans l'"onglet 1" : T1,T2...

Le bouton compare va donc nous dire dans quelles colonnes "onglet" il y a O (donc oui) le mot choisi dans la Combobox est présent.

Toujours pas précis? je fais de mon possible mais suis prêt à encore éclaircir s'il faut.

Cordialement

Merci

D'après mon point de vue de débutant, je pense que ça donnerait en instructions:

si dans la combobox, on sélectionne le mot "manger" de la liste jaune alors :

- regarder sur la même ligne que "manger" si il y a des "O"

- si il y a des "O" alors enregistrer dans une variable les noms des onglets qui contiennent le "O":

-afficher dans le msgbox que le mot "manger" est présent dans les onglets enregistrés par la variable

On peut toujours travailler avec le fichier Classeur5_V1.

Cordialement

Re,

Ta macro Private Sub UserForm_Initialize() n’a plus de raison d’être, puisque ton ComboBox1 est rempli par l’intermédiaire d’une liste dynamique (la ‘Liste_omega’ visible sous ‘Noms’ et placée dans la propriété ‘RowSource’ du ‘ComboBox1). Je l’ai mise en ‘commentaire’ dans le fichier ci-joint. J’aurais pu la supprimer déjà dans le fichier ‘Classeur5_V1’.

J’avais compris depuis longtemps que tu désirais obtenir un message d’information au sujet de la présence ou non de mots dans les divers onglets, mais je t’avais demandé des précisions sur le déroulement général de ton fichier afin de savoir par où commencer.

Dans le fichier ci-joint, si tu cliques sur le bouton ‘Compare’ et qu’aucun mot n’a été sélectionné dans le ComboBox, un message d’erreur t’en informe.

Si tu choisis un mot qui n’apparait dans aucun onglet (‘hier’ par exemple), tu auras un message t’en informant.

S’il n’y a qu’une seule occurrence trouvée, j’ai considéré que tous les noms de tes onglets commencent par le mot ‘onglet’ (comme dans tes exemples) et j’utilise le mot onglet dans le message d’information qui apparait. Mais il est bien entendu que si dans la réalité tes noms d’onglet ne commencent pas tous par le mot ‘onglet’, il faudra trouver une autre manière de faire. Pour mieux comprendre ce que je veux dire, cherche successivement les mots ‘bouger’ et ‘changer’.

S’il y a plusieurs occurrences trouvées, le message convient quels que soient les noms des onglets.

Tu pourrais te passer des boutons ‘Compare’ et ‘Annul’ et déclencher le code (donc l’apparition des différents messages) directement lors de la sélection du mot dans le ComboBox. Mais peut-être as-tu quand même une raison de vouloir que le code ne se déclenche pas immédiatement lors de la sélection du mot.

Mieux vaut une explication claire que 36 explications confuses. Laisse-toi le temps de préparer ta réponse (éventuellement d’abord dans Word puis sur le Forum par copier-coller), réfléchis bien si tu penses que la personne à qui s’adressent tes informations pourra les comprendre sans connaitre spécialement ta manière de travailler et poste seulement lorsque tu es certain de ta réponse. Il n’y a rien de plus rageant que les messages ‘à épisodes’ ou l’on doit faire des recoupements entre les différents textes afin de comprendre la totalité du sens. L’utilisation du correcteur d’orthographe Word est sans conteste un plus.

A te relire.

9classeur5-v2.xlsm (22.91 Ko)

Re,

Je te remercie Yvouille pour tous les changements que tu as effectués dans la macro "comparison". Je n'ai pas eu le temps de tester toutes les possibilités (je le ferai plus tard sûrement) mais je te fais confiance. Ton idée de supprimer Private Sub UserForm_Initialize() me plaît bien

Les différents messages que tu as créés sont complets à première vue, je t'en remercie encore. Cependant je conserve pour l'instant le bouton "compare", merci de ton idée quand même .

Dans le fichier joint, une nouveauté est les différentes feuilles au bas du fichier: Onglet 1, Onglet 2, ..., Onglet n. Chacun de ces Onglets contient 4 tableaux T1, T2, T3 et T4. Et on retrouve tout simplement dans ces tableaux, les mots à leur bon emplacement. Leur bon emplacement signifie l'emplacement prescrit dans la feuille "donnees".

A présent il ne reste normalement qu'une dernière étape pour finaliser la macro du bouton "comparison". La voici:

Après que l'utilisateur ait choisi son mot, il clique sur "compare", il lui affiche alors les msgbox. De là, je souhaiterais que s'en suive l'apparition d'un nouveau userform: le USERFORM 2 que j'ai déjà créé dans l'Excel ci-joint. Je sais pas si c'est possible ou pas d'appeler un userform à partir d'un bouton comme cela, tu en penses quoi?

Comme on peut voir, le userform afficherait le mot sélectionné par l'utilisateur (donc le mot du combobox) mais aussi les différents onglets où le mot est présent (donc les onglets qui sont apparus dans les msgbox).

L'utilisateur aura donc le choix de sélectionner deux ou plusieurs de ces onglets (en cliquant sur les checkbox correspondants).

Une fois les onglets sélectionnés et le bouton "terminer" cliqué, un nouveau fichier Excel se crée. Ce nouveau fichier contiendrait les différents tableaux où se trouve le mot choisi.

Par exemple, si le mot "manger" est dans le tableau T1 de l'Onglet 1 et dans le tableau T3 de l'Onglet 2 , alors (supposons que l'utilisateur ait choisi de checker Onglet 1 et Onglet 2) le nouveau fichier Excel ferait apparaître le tableau T1 de l'Onglet 1 suivi en bas du tableau T3 de l'Onglet 2.

Voilà, je te remercie pour le temps que tu me consacres.

Cordialement

Si vous avez des idées plus simples et efficaces, je suis à votre écoute car l'idée présentée ici n'est pas encore figée.

16classeur5-v3.xlsm (38.53 Ko)

Salut,

Tu nouvelle demande me parait assez importante et je sens qu’il me faudrait bien quelques heures pour éventuellement arriver à répondre à ta demande. Je te propose alors que tu indiques ce fil comme résolu – en cliquant sur le petit V vert dans l’un de tes messages – et que tu en rouvres un autre à ce sujet.

Désolé de te laisser tomber ainsi, mais je suis un peu pris ces temps du point de vue professionnel et du point de vue du Forum.

A une prochaine fois peut-être ….. ou si vraiment personne ne te répond sur ton autre fil, dans un tel cas revient me relancer sur ce fil-ci.

Amicalement.

Salut,

Ok je te remercie de l'aide que tu m'as apportée

Amicalement

Bonjour Yvouille,

Je te contacte car personne n'a répondu à ma demande. Comme tu me l'avais dit, je me retourne vers toi pour te demander ton aide à nouveau; si cela ne te dérange pas bien sûr

J'ai un peu modifié ma demande et je l'ai posté aujourd'hui sous le nom de : Apparition d'une Fenêtre de Comparaison.

Vraiment je te remercie de ton attention. En espérant que tu m'apportes ton aide. Bonne journée!

Amicalement

Salut,

Comme promis, je suis allé voir ta nouvelle demande. Hier je me suis dit qu'il fallait laisser une nuit de sommeil afin de voir si je te comprendrais mieux aujourd'hui et aujourd'hui - après avoir lu trois fois ta donnée - j'ai décidé de t'informer que malheureusement je n'irai pas plus loin

J’ai vraiment de la peine à voir où tu veux en venir et ne sais pas par où empoigner le problème. Et à voir le nombre de personnes qui t’ont répondu, je pense que je ne suis pas le seul.

Je te souhaite quand même que quelqu’un vienne à ton secours ou essaie d’expliquer mieux quel est le but final. Tu pourrais également essayer de ne pas trop indiquer dans quelle direction tu veux partir (ne pas montrer ton UserForm) afin que le gars qui serait prêt à t’aider puisse partir dans la direction qu’il pense lui.

Cordialement.

Re,

Ok merci quand même, c'est pas grave...

Amicalement

Rechercher des sujets similaires à "outil comparaison"