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
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,
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+
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
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...