Creer une macro "selection cellule - réponse"

Bonjour à tous !

Tout d'abord il est nécessaire de préciser que je suis totalement novice en VBA. Je n'ai vraiment pas de bases solides.

Je possède un fichier excel comprenant 2 pages contenants chacune des référence de produit. Sur la première page des produits d'une marque X, et sur la 2sde des produits de la marque concurrente Y.

J'aimerais créer une macro qui me permettrait ceci :

Tout d'abord une boite de dialogue s'ouvre et demande à l'utilisateur de rentrer une référence situé dans les cellules B1 à B2000 de la feuille 1 (soit en tapant le nom, soit en proposant une liste déroulante des noms à l'utilisateur, je ne sais pas ce qui est le plus simple)

Ensuite, en fonction de la référence choisie, j'aimerais que la boite de dialogue renseigne automatiquement la référence concurrente situé dans les cellules B1 à B2000 dans la feuille 2.

J'imagine que je dois au préalable renseigner quelque part toutes les "paires" de référence.

Cela donnerait un truc comme ça :

1) Veuillez rentrer la référence refX - L'utilisateur choisit sa référence

2) La référence concurrente est refY

Toute aide est la bienvenue. Merci d'avance, et bonne semaine à tous !!

Salut,

Je pense qu’une liste déroulante avec 2000 articles peut être assez pénible à scroller. Sinon tu dois presque connaitre tes 2000 articles par cœur, autrement tu ne sauras pas les inscrire dans ton formulaire.

Je te propose alors une autre solution. Si tu double-cliques sur un article de la colonne A de la Feuil1, un MsgBox s’ouvre et t’indique la référence correspondante de la Feuil2. Si cet article n’est pas trouvé, tu reçois un message t’en avertissant (pour tes essais, les références en rouge n’existent pas sur la Feuil2).

Cordialement.

19guilhem-v1.xlsm (94.75 Ko)

Bonjour et merci,

ta méthode est intéressante mais j'ai plusieurs problème.

comment as-tu fais celà ? Je ne trouve pas de macro dans le fichier que tu m'as envoyé.

Il arrive parfois qu'il y ai plusieurs articles qui correspondent à un seul article, par exemple, la référence B2 de la feuille 1 a pour référence concurrente les références B3 et C3 de la feuille 2. Comment faire pour afficher les 2 références dans une MsgBox ?

Merci du temps pris pour répondre à mon problème.

Guilhem

Re,

La macro est placée dans le code de la feuille. Pour l’atteindre : clic-droit sur l’onglet de la feuille / Option ‘Voir le code’.

Si tu m’avais fourni de suite ton fichier réel, je ne serais pas obligé de tâtonner avec un fichier imaginaire

Voici encore un essai ‘sans filet’. Si ce n’est toujours pas ça, merci de me fournir ton fichier.

Amicalement.

10guilhem-v2.xlsm (17.76 Ko)
11referencement.xlsm (235.84 Ko)
11referencement.xlsm (235.84 Ko)
11referencement.xlsm (235.84 Ko)

Ok, je te file le fichier, mais crois moi, ça va pas être une partie de plaisir

J'ai fait ici un fichier exemple avec 3 articles (mais dans la réalité j'en ai plus de 2000).

J'aimerais que :

1) L'utilisateur puisse sélectionner une référence de la marque A de son choix.

2) Son prix et son libellé apparaissent dans un message.

3) dans ce même message, apparaissent les 3 propositions de la marque concurrente avec leur références, ainsi que leur prix.

Enfin, petite difficulté finale, comme tu peux le voir, dans la proposition 3, apparaissent des produits composés de "composants", j'aimerais que ces composants apparaissent aussi dans le message avec leur référence ainsi que leur prix.

Le tout de façon assez compréhensive pour l'utilisateur.

Je suis conscient de la difficulté de la chose et je ne t'en voudrai pas si tu abandonnes.


Oups dsl pour l'envoie des 3 fichiers, 1 seul suffit.

Que tu aies 3 articles ou que tu en aies 2000, la macro fera le même travail.

Par contre ton fichier ne correspond plus du tout à ce que tu prétendais tout d’abord : où est la deuxième feuille ? Comment veux-tu que je trouve les mêmes articles sur les deux feuilles (quelles sont les données communes à ces deux feuilles) ?

Tu devrais me fournir un fichier vraiment représentatif avec 5 ou 6 articles montrant toutes les variantes possibles.

Mais au bout d’un moment, arrête de modifier ta demande, ou je vais me lasser de recommencer à tout bout de champs mon travail pratiquement à zéro.

A te relire.

Oui, je suis désolé, je ne peux pas te donner le fichier original pour des raisons de confidentialité. Mon employeur m'en voudrait si ça terminait sur le net.

Je t'ai donc fait un fichier qui s'en rapproche.

De plus, le fichier a été modifié depuis ma première question. Ce fichier est la version finale que j'utiliserai. Tout est situé dans la même feuille.

Comme tu le vois, il y a 4 niveaux :

1) Référence Marque A

2) Proposition 1

3) Proposition 2

4) Proposition 3

Je veux que :

1) L'utilisateur sélectionne son produit (par référence par exemple)

2) Un message apparait avec :

  • d'un côté le produit sélectionné avec son prix France et son prix Distributeur
  • de l'autre tous les produits concurrents possible avec leur prix et leur référence.

Dans mon fichier, l'article A a pour produit concurrent les produits X1, Y1 et Z1(composé de 2 produits)

L'article B a pour produit concurrent les produits X2 et Z2(composé de 2 produits)

L'article E n'a aucun concurrent.

J'ai essayé dans ce fichier joint ici, de faire tous les cas possibles.

Les articles concurrents peuvent être composées d'un seul produit (case G6 par exemple) ou de 2 (case O6) voir de 3 (case O12),

19referencement-v2.xlsx (230.99 Ko)

Re,

Je ne t’ai pas demandé le fichier original, mais un fichier représentatif.

Les cellules fusionnées sont un véritable poison pour Excel en général et pour les macros en particulier. De voir ton fichier, ça fait froid dans le dos.

Tu as tes produits concurrents toujours placés sur la même ligne que le produit de base, il n’est donc pas nécessaire de faire une macro ; il faut juste scroller sur la droite.

D’ailleurs je ne sais pas comment tu voudrais trouver autrement les références inscrites dans les cellules B6 ou C6 par exemple, alors qu’elles ne se trouvent nulle part dans les autres colonnes.

Je ne vois vraiment pas où tu veux en venir et pourtant j'en ai déjà redressé, des fichiers tordus Indique éventuellement ce poste comme 'Résolu' (en cliquant sur le petit V vert dans l’un de tes messages) et recommence un nouveau fil en était beaucoup plus précis dès le départ.

Amicalement.

Quand même encore une précision :

Dans mon fichier exemple, tu vois bien qu'il y a des données identiques dans les colonnes A des deux feuilles, ce qui permet de rechercher des données de la colonne A de la Feuil1 dans la colonne A de la Feuil2.

Dans ton fichier je ne trouve nulle part une telle concordance. Ca n'a pas besoin d'être sur deux feuilles et dans des colonnes identiques, mais il faut quand même qu'il y ait des concordances entre deux colonnes afin de pouvoir effectuer des recherche de l'une vers l'autre

Cordialement.

Il existe une concordance :

Chaque libellé d'article de la marque A a son article concurrent situé en : N+5 , N+9 et N+13

Chaque référence d'article de la marque A a sa référence concurrente situé en : N+5 , N+9 et N+13

N étant le nombre de colonne.

Je pensais qu'il était possible de créer une macro qui aurait permis en entrant une référence de son choix, d'aller chercher les valeurs situé en N+5, N+9 et N+13 et de les afficher dans une boite de dialogue. Ce qui aurait rendu plus intuitif la façon d'aller chercher les références concurrentes, et surtout plus lisible, parce que mon tableau excel final il est rempli de références à 8 chiffres, ce n'est pas très convivial si tu veux.

Désolé, mais je ne suis plus très motivé par ce fichier Comme peu de membres s'intéressent encore à un fil bien entamé, je te conseille franchement de l'indiqué comme 'Résolu' et d'en recommencer un nouveau sur des bases solides dès le départ.

Amicalement.

Bonsoir

Un p'tit essai

OUAOU alors là bravo, j'y croyais plus, je suis impressionné de ce que les gens savent faire avec VBA...

Un dernier truc et mon fichier sera parfait.

J'aimerais que toutes les propositions soient comme la proposition n°3 CAD, avec "composants, référence composant" mais en enlevant les prix composants et en les remplaçant par "codification". Je suis désolé de changer au fur et a mesure de la discussion, mais c'est en voyant le résultat que je me rend compte des améliorations possibles. Et là, avec la pépite que tu m'as fait, je suis désormais sur de ce que je veux.

Je t'envoie donc la version finale.

J'ai essayé de le modifier moi même toute le nuit et je n'y suis pas arrivé.

Comment as tu fais le bouton USERFORM ?

15fichier-final.xlsx (247.90 Ko)

Désolé mais je vais pas plus loin

Avant de commencer j'ai regardé te fichiers que tu avais postés, et il n'y avait que la proposition 3 qui avait des composants

C'est pour-ça que je l'avais fait

Maintenant ce sont toutes les propositions qui peuvent avoir des composants, donc la macro actuelle est à jeter à la poubelle et il faut en refaire une autre

Et dans l'état actuel je ne le ferais pas

Désolé

Bonjour,

pas de souci, je peux comprendre que tu as d'autres chats à fouetter. J'essaie actuellement de faire les modifs tout seul.

J'aurai peut être 2-3 questions à poser plus tard quand je bloquerai..

Merci infiniment de ton aide qui m'est très précieuse.

Salut Banzai, Salut Guilhem,

@ Guilhem

Peut-être qu’un dernier remerciement pour le travail que je t'ai fourni ainsi que pour mon dernier conseil n’aurait pas été de trop.

Finalement, mon dernier conseil – d’ouvrir un nouveau fil avec une nouvelle demande correspondant exactement à ton attente – n’était pas si idiot.

Cordialement.

Bonsoir

Ouai j'avais dit que j'abandonnais, mais j'étais un chouia nrv quand tu as changé les règles du jeu

Voici une version avec les dernières contraintes

Mais c'est promis, hormis la réparation des bugs, je ne fais pas d'autres versions

Bonjour à vous 2,

Banzai, je te remercie infiniment pour ton acharnement, j'avais réussi à faire une 2sde version, mais la tienne est beaucoup plus propre. J'apprécie particulièrement que les cases "composant" et "référence composant" s'effacent quand elles sont vides, quelle est la partie de la macro qui permet cela ?

Yvouille, merci à toi également, je suis désolé d'avoir sans cesse changé ma requête et je comprends que tu ai abandonné.

Une dernière question à laquelle vous pourrez peut-être répondre, j'ai parfois des libellé qui sont très long ( + de 30 caractères ), ils ne s'affichent donc pas complètement. Y a t'il moyen de créer un scroll dans les cases de mon choix?

A vous relire.

Cdlt

Ah et j'ai repéré un bug, il y a autant de cases "codifications" que de composants, hors, ces codifications sont propres au composé et pas au composants. En effaçant les cases codification en trop dans l'userform, celà créé une erreur d'exécution. Que dois-je faire?

Merci

Bonjour

Ne les effaces pas, masques les

Me.Label....Visible = False
Rechercher des sujets similaires à "creer macro selection reponse"