Associer un macro a plusieurs listes deroulantes

Bonjour à tous!

Toout d'abord désolé si le sujet a pu être évoqué, cela fait plusieurs jours que je regarde les forums, et même si je trouve des cas similaires, je ne vois rien qui m'aide...

Cela dit, je suis un vrai néophyte, et c'est surement moi qui ne voit pas comment adapter les différentes solutions proposés à mon cas

Pour faire simple, je souhaite réaliser un excel pour suivre mes appels d'offres.

Ce dernier est composé de trois feuilles :

AO reçu

AO traité

AO non répondu

J'ai dans la feuille "AO reçu" la colonne Jet K qui sont fusionnées et une quarantaine de lignes qui ont chacune la même liste déroulante composée de:

non statué

oui

non

traité

l'idée est que lorsque je choisis "non" dans la liste déroulante, la ligne aille se ranger dans la feuille "AO non répondu", et que lorsque je choisis "traité" elle aille dans la feuille AO traité...

J'ai réussi à faire une macro qui fasse un copier collé d'une feuille vers l'autre, mais elle ne prend pas en compte la valeur indiqué dans la liste déroulante, et ne fonctionne que pour une seule ligne... (par exemple si j'ai effectué la macro sur la ligne 2, le copier collé ne fonctionne que sur cette ligne quand j'utilise le raccourcis)

Je suis désolé, mon niveau est vraiment exécrable mais j'essaye d'y remédier, même si pour le moment je suis un peu perdu tant je ne sais pas par quel bout prendre le problème.

Ci-dessous une capture du tableau

visu excel

j'ai d'autres projets sur ce tableur pour la suite, mais je préfère prendre les problèmes un par un, et peut être qu'une fois le pied à l'étrier je réussirai à avancer seul (enfin j'espère).

Merci d'avance à tout ceux qui viendront m'apporter leur aide !

Bonjour Lasconi et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Merci de votre participation

Cordialement

Bonjour!!

Mes excuses pour la présentation, c’est corrigé ;)

Concernant le fichier, j’ai essayé une première fois de rédigez mon message en le joignant mais ça n’a pas fonctionné, j’ai donc pensé que c’était réservé aux membres premium.

J’essaierai de nouveau la prochaine fois que je serais sur mon pc perso !

Bonjour Nicolas,

Pas de problème pour la présentation, ce n'est pas une obligation, mais c'est pour mieux te connaitre

Pour le fichier, il ne faut pas qu'il dépasse 500Ko, un échantillon (100Ko) suffit souvent pour comprendre et faire le bon code

A+

bon bah ca fonctionne, je peux mettre mon excel en pièce jointe

Par contre j'ai de nouveau essayé de travailler mes macros et ca ne fonctionne pas... d'ailleurs je ne sais pas pourquoi mais je n'arrive pas à les enregistrer quand je ferme mon tableau excel.

Il y a une page personal.xlsb qui se créée, faut il que je réalise mes macros la dedans pour pouvoir les conserver?

J'ai mis une note dans mon tableau pour que vous ayez une vision globale des fonctions que je souhaite avoir.

Bien entendu l'idée est de m'aiguiller, je serai trop gêné de demander plus, mais après réflexion je me dis que c'est peut être mieux que vous ayez tous les éléments en main, si je dois faire des codes pour les défaire ensuite je ne m'en sortirai jamais ^^

En attendant de vous lire, bonne soirée à tous!

Bonsoir lasconi,

Pour enregistrer un fichier avec macros, il faut l'enregistrer au format ". xlsm"

A+

Bonjour à tous!

J'ai un peu avancé sur mon excel, et réussi à mettre une macro qui s'active automatiquement quand je sélectionne "non" dans le menu déroulant.

Gros problème, ca ne fonctionne que sur la liste déroulante présente dans la cellule J2, et le macro ne s'exécute que sur la ligne que j'ai utilisé pour la créée.

En fait c'est normal, mais je ne sais pas comment retravailler le code pour que ca fonctionne sur toutes les listes déroulantes de la colonne J, et que la macro s'active en fonction sur la bonne ligne...

Si vous avez des pistes, je suis preneur!

Bonjour Nicolas,

Alors ça.... jamais de la vie il faut pratiquer ainsi

image

Si vous voulez bien commencer sur Excel et VBA : 1 cellule = 1 information

De plus pensez à utiliser les tableaux structurés

Voici le fichier modifié

A+

Bonjour,

Vous semblez effectivement être au niveau sub.débutant avec Excel alors parler de macro dans ces conditions me semble effarant.

A mon avis le forum ne vous sera d'aucune utilité sauf à y trouver un coaching personnalisé : S’entend par là, un tuteur suffisamment pédago qui puisse vous assurer une prise en main en temps réel (c'est à dire en phonie) peut-être avec l'appui d'un logiciel type Team, Discord... Ou mieux une formation in situ dans votre localité (si vous n'êtes pas trop isolé) si vous avez suffisamment de liberté pour y consacrer quelques heures par jour...

A+

10traitement-ao.xlsm (28.26 Ko)

Bonjour,

Effectivement je suis totalement débutant, mais bon, avec un peu de motivation internet est un outil formidable qui permet d'apprendre beaucoup de chose.

J'ai repris mon tableau, il devrait je pense être plus présentable!

J'ai aussi réussi à faire une macro (non présente dans le fichier ci-joint) pour envoyer mes sélections d'une feuille à l'autre selon le choix que je fais dans le menu déroulant "réponse", mon seul problème est qu'au lieu d'insérer ma sélection dans les feuilles correspondantes, elle fait un copié collé, ce qui écrase tout à chaque fois, j'essaierai de trouver la solution seul, ça ne doit pas être bien méchant.

Par contre peut être pouvez vous m'aider sur un point (malgré mon très faible niveau), j'ai trouvé et "adapté" un code qui fonctionne plutôt bien pour créer une alerte sur mon agenda outlook.

L'alerte s'affiche correctement, avec un lapse de temps qui me convient etc... par contre et je ne sais pas si c'est possible, je souhaiterai qu'elle se lance quand je sélectionne la personne située dans la colonne "relance" et que l'alerte se créée sur l'agenda de la personne concernée (pour le moment ca ne fonctionne que sur mon agenda).

En espérant avoir moins blasphémé sur ce nouveau chef d’œuvre

Bonjour Lasconi

J'ai aussi réussi à faire une macro (non présente dans le fichier ci-joint) pour envoyer mes sélections d'une feuille à l'autre selon le choix que je fais dans le menu déroulant "réponse",

A priori vous ne suivez pas ce qu'on vous donne comme code et vous nous donnez un fichier sans celui-ci

Donc pour ma part, je vous laisse à vos lacunes

Toutes mes excuses, j'ai lu votre précédente réponse visiblement un peu trop vite depuis mon smartphone ce week end et je n'avais pas vu le fichier associé.

Parallèlement à ça, j'ai retapé mon tableau sans revenir voir le topic (grosse erreur de ma part).

Donc en plus de mes excuses, je joins aussi tous mes remerciements car c'est top!

Du coup je vais voir si j'adapte la macro au fichier que je viens d'envoyer ou si je met mon code pour les alertes outlook sur votre fichier.

Je m'en veux doublement car en plus de créer une mésentente, ça met le bazar dans le topic avec deux fichiers différents.

Mais encore merci c'est très sympathique!

Bonjour à tous,

La semaine est chargé mais j'ai repris le fichier que brunoM45 a travaillé.

J'ai tenté de faire fonctionner la deuxième macro "ReponseTraité" avec la fonction ElseIf, en l'ajoutant dans le code VBA de la feuille "réceptionAO", mais je ne comprend pas pourquoi elle ne veut pas se mettre en marche, d'autant plus que je n'ai aucun message d'erreur...

J'ai aussi ajouté un code VBA dans la feuille "AOtraité" pour créer une alerte dans un agenda, il fonctionne bien et fait ce que je recherche, par contre je souhaiterai qu'il s'active automatiquement quand je choisis une des deux personnes présentes dans la colonne "relance" et surtout que le rappel s'affiche dans l'agenda de la personne concernée, car pour le moment ca ne fonctionne que sur mon agenda...

Je continue de regarder et je vais essayer de m'inspirer de ce qu'a fait Bruno, mais de ce que je vois sur le forum, il y a plusieurs approches possible non?

Bonjour Lasconi,

Voici votre fichier modifié et qui devrait fonctionner comme demander

A+

Merci mille fois Bruno, c'est parfait !

Je vois que le code que j'avais trouvé pour gérer mes RDV n'était finalement pas bon vu que tu l'as entièrement retapé, je vais analyser ca pour tenter de comprendre les différences...

Et je ne comprend pas, j'avais initialement ajouté une ligne If au lieu ElseIf, vu que c'est ce qui me semblait le plus logique, mais j'avais tout le temps un message d'erreur de syntaxe, vu que j'avais lu et relu ma ligne et que je ne voyais pas de fautes de frappes, je pensais que le problème venait d'ailleurs... finalement non c'était surement moi.

Je vais pouvoir clore ce topic et réfléchir à d'autres améliorations (j'aimerai bien y ajouter des graphiques), donc il va falloir continuer de potasser cet excellent forum.

Je me suis réjoui un peu vite, j'ai bien le message d'erreur dont je parlais qui apparait quand je sélectionne "non", à savoir "Erreur d'exécution 424, Objet requis" (aucun message quand on sélectionne "traité").

Ce qui est étonnant c'est que la macro se lance quand même et qu'elle s’exécute... juste le message qui spam apparemment sans raison...

Autre point, mais je pourrais chercher seul, je ne veux pas abuser non plus... le tableau dans lequel sont renseignées les infos pour créer une alerte dans l'agenda outlook (colonne L à R), ne se mettent pas à jour selon les infos qui sont présentent dans la ligne associée à la case relance (le tableau met à jour uniquement les infos que je rentre dans la ligne 3)

Re,

Un petit détail que j'ai oublié, quand la procédure est exécutée, la ligne est supprimée

Il faut donc penser à sortir de la sub à chaque traitement, sinon "Target" n'existe plus

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  ' Sinon
  If Not Intersect(Target, Range("E:E")) Is Nothing Then
    If UCase(Target.Value) = "NON" Then Call ReponseNon: Exit Sub
    If UCase(Target.Value) = "TRAITÉ" Then Call ReponseTraite: Exit Sub
  End If
End Sub

Pour le 2ème souci, c'est ce que vous aviez donné comme intitulé et exemple
Ou devons nous aller piocher les infos du coup

A+

J'ai fait la modif et c'est bon, je n'ai plus ce vilain message ;)

Pour le reste j'ai effectivement pas été suffisamment clair , mais bon, je vais essayer de bricoler quelque chose pour m'éviter de le remplir à chaque fois, vous m'avez déjà apporté bien plus qu'une simple aide.

Merci beaucoup.

Je remet le tableau en pièce jointe, propre et sans bug, peut être qu'il intéressera

quelqu'un d'autre un de ces jours...

Rechercher des sujets similaires à "associer macro listes deroulantes"