Effectuer ma macro pour chaque sélection dans la liste déroulant
Résolu/Fermé
GKI
-
11 juil. 2013 à 15:05
galoute67 Messages postés 3 Date d'inscription jeudi 3 octobre 2013 Statut Membre Dernière intervention 16 mars 2016 - 16 mars 2016 à 09:40
galoute67 Messages postés 3 Date d'inscription jeudi 3 octobre 2013 Statut Membre Dernière intervention 16 mars 2016 - 16 mars 2016 à 09:40
A voir également:
- Effectuer ma macro pour chaque sélection dans la liste déroulant
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
6 réponses
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
26 juil. 2013 à 11:59
26 juil. 2013 à 11:59
On va récapéter alors :)
Ici on compte dans la Feuil1 les lignes qui comportent la même date et la même équipe qui se suivent. Ensuite on sélectionne, on copie colle, et terminé.
Et ici on fait la même chose, on compte les lignes de la Feuil1 qui ont même date et même équipe, on sélectionne, on supprime, et terminé.
Sub copie_données_filtrées() Dim ligne As Integer ligne = 1 Do ligne = ligne + 1 Loop Until Cells(ligne, 1) <> Cells(ligne + 1, 1) Or Cells(ligne, 3) <> Cells(ligne + 1, 3) Range("A1:M" & ligne).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil3").Select Range("A1").Select ActiveSheet.Paste End Sub
Ici on compte dans la Feuil1 les lignes qui comportent la même date et la même équipe qui se suivent. Ensuite on sélectionne, on copie colle, et terminé.
Sub suppression_dans_la_feuille_1() Dim ligne As Integer ligne = 1 Sheets("Feuil1").Select Do ligne = ligne + 1 Loop Until Cells(ligne, 1) <> Cells(ligne + 1, 1) Or Cells(ligne, 3) <> Cells(ligne + 1, 3) Range("A2:AA" & ligne).Select Selection.Delete End Sub
Et ici on fait la même chose, on compte les lignes de la Feuil1 qui ont même date et même équipe, on sélectionne, on supprime, et terminé.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
11 juil. 2013 à 23:58
11 juil. 2013 à 23:58
Il est probable qu'un Do ... Loop ou un While .. Wend fasse l'affaire.
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
Modifié par Morgothal le 18/07/2013 à 16:18
Modifié par Morgothal le 18/07/2013 à 16:18
Si tu as la liste des dates possibles dans un range, tu peux effectivement utiliser un For Each :
A la place du msgbox, mettre la procédure qui traite chaque date (la date est dans la variable cell)
Sub test() For Each cell In Range("A1:A10") MsgBox cell 'chaque cell contient le contenu (oui oui...) des cellules de 'A1 à A10 à chaque itération Next End Sub
A la place du msgbox, mettre la procédure qui traite chaque date (la date est dans la variable cell)
J'ai essayé mais cela me refait la formule sur la 1ere ligne en boucle.
Enfait, je voudrais que la macro sélectionne dans le menu déroulant (du filtre automatique) une à une chaque date.
cela donnerait :
sélection date 1 dans menu déroulant (du filtre auto)
fait manip automatique que j'ai enregistré
puis dans le menu déroulant sélectionne date 2
fait manip
ainsi de suite jusqu'à ce que toutes les dates du menu déroulant soient faites
merci
Enfait, je voudrais que la macro sélectionne dans le menu déroulant (du filtre automatique) une à une chaque date.
cela donnerait :
sélection date 1 dans menu déroulant (du filtre auto)
fait manip automatique que j'ai enregistré
puis dans le menu déroulant sélectionne date 2
fait manip
ainsi de suite jusqu'à ce que toutes les dates du menu déroulant soient faites
merci
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
19 juil. 2013 à 13:45
19 juil. 2013 à 13:45
Quel est l'intérêt de sélectionner automatiquement chaque date une par alors qu'il faut faire toutes les dates ???
Autant toutes les faire directement (sans les sélectionner une à une).
Dans ce cas le code de Morgothal est tout à fait adapté
Autant toutes les faire directement (sans les sélectionner une à une).
Dans ce cas le code de Morgothal est tout à fait adapté
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
19 juil. 2013 à 13:47
19 juil. 2013 à 13:47
PS : il faudrait que tu mettes la macro que tu as enregistré pour qu'on voie ce qui ne va pas
Si je mets toute la macro, ça va faire beaucoup, elle est longue et c'est un peu du bricolage parce que je n'y connais rien et je suis entrain de bidouiller.
enfait l'intérêt de sélectionner les dates une à une, c'est que j'ai plusieurs ligne pour chaque date et que ma macro me permet de regrouper ces différentes lignes en une seule.
enfait l'intérêt de sélectionner les dates une à une, c'est que j'ai plusieurs ligne pour chaque date et que ma macro me permet de regrouper ces différentes lignes en une seule.
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
22 juil. 2013 à 09:25
22 juil. 2013 à 09:25
Oui c'est possible
Ta macro doit traiter une date que tu choisis à la main.
Le bout de code que j'ai écrit plus haut permet de passer sur chaque date dans la liste.
Il faut donc juste mettre ta macro dans la boucle écrite plus haut, et modifier ta variable date par la variable utilisée dans la boucle...
Ta macro doit traiter une date que tu choisis à la main.
Le bout de code que j'ai écrit plus haut permet de passer sur chaque date dans la liste.
Il faut donc juste mettre ta macro dans la boucle écrite plus haut, et modifier ta variable date par la variable utilisée dans la boucle...
Sub test()
For Each cell In Range("A1:A10")
MsgBox cell 'chaque cell contient le contenu (oui oui...) des cellules de 'A1 à A10 à chaque itération
Next
End Sub
tu parles de celui-ci?
mais je ne voudrais pas choisir la date à la main, je voudrais que ça se fasse tout seul (je demande peut être un peu beaucoup je ne sais pas)
qu'entends tu par modifier la variable date par la variable de la boucle?
Merci
For Each cell In Range("A1:A10")
MsgBox cell 'chaque cell contient le contenu (oui oui...) des cellules de 'A1 à A10 à chaque itération
Next
End Sub
tu parles de celui-ci?
mais je ne voudrais pas choisir la date à la main, je voudrais que ça se fasse tout seul (je demande peut être un peu beaucoup je ne sais pas)
qu'entends tu par modifier la variable date par la variable de la boucle?
Merci
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
23 juil. 2013 à 14:21
23 juil. 2013 à 14:21
Bonjour,
Sans le fichier, ça reste difficile à comprendre !!!
Essaies de le rendre anonyme avec des information "bidons" mais réalistes.
Sans le fichier, ça reste difficile à comprendre !!!
Essaies de le rendre anonyme avec des information "bidons" mais réalistes.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
23 juil. 2013 à 16:04
23 juil. 2013 à 16:04
Aah un fichier :-)
Oui le lien cjoint fonctionne bien
Donc avec tout ce qu'on a dit plus haut, je récapète :
Tu souhaites prendre toutes les lignes de chaque date de la colonne A, les copier (ou couper ?)/coller sur une autre feuille, et agréger les lignes selon certains critères pour n'avoir qu'une ligne par date, me trompe-je ?
Quels sont ces critères ?
Oui le lien cjoint fonctionne bien
Donc avec tout ce qu'on a dit plus haut, je récapète :
Tu souhaites prendre toutes les lignes de chaque date de la colonne A, les copier (ou couper ?)/coller sur une autre feuille, et agréger les lignes selon certains critères pour n'avoir qu'une ligne par date, me trompe-je ?
Quels sont ces critères ?
http://cjoint.com/?3GxqfGlLjEm
j'ai changé le fichier les données n'étaient pas représentative
oui c'est ça !
enfait chaque ligne correspond à un voyage jusqu'à une usine
je veux avoir une ligne par jour et par équipe regroupant les données des voyages effectué ce jour la
c'est à dire
date équipe véhicule heure arrivée usine voyage 1 puis heure sortie pour chaque voyage horaire des employées et poids de chaque trajet et au final le nombre de voyage
j'ai mis le déroulé de mes macro dans l'en tete du fichier joint
je le remet ici :
-mise_en_forme
faire filtre automatique sur date et équipe
-copie_données_filtrées
-compilation
-copie_remise_zéro
(les 3 dans recoupement_complet)
-nb_voyage_jour
j'ai changé le fichier les données n'étaient pas représentative
oui c'est ça !
enfait chaque ligne correspond à un voyage jusqu'à une usine
je veux avoir une ligne par jour et par équipe regroupant les données des voyages effectué ce jour la
c'est à dire
date équipe véhicule heure arrivée usine voyage 1 puis heure sortie pour chaque voyage horaire des employées et poids de chaque trajet et au final le nombre de voyage
j'ai mis le déroulé de mes macro dans l'en tete du fichier joint
je le remet ici :
-mise_en_forme
faire filtre automatique sur date et équipe
-copie_données_filtrées
-compilation
-copie_remise_zéro
(les 3 dans recoupement_complet)
-nb_voyage_jour
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
23 juil. 2013 à 16:29
23 juil. 2013 à 16:29
Quand tu dis sur date et équipe , c'est à dire la colonne A et la colonne C ?
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
Modifié par Morgothal le 23/07/2013 à 16:37
Modifié par Morgothal le 23/07/2013 à 16:37
Et toute cette discussion pour automatiser l'étape :
faire filtre automatique sur date et équipe
J'ai tout compris ! Je m'y atèle :-)
faire filtre automatique sur date et équipe
J'ai tout compris ! Je m'y atèle :-)
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
23 juil. 2013 à 16:57
23 juil. 2013 à 16:57
Il y a quand même des simplifications à apporter :
Il n'y a pas besoin de filtrer par date et par équipe dans le cas où il n'y a qu'une ligne par date et équipe.
Il arrive que des fois il y ait deux fois la même équipe pour une même date, ce sont ces cas là qui sont problématiques...
En dehors de ces cas problématiques, il suffit de prendre ligne à ligne pour que ce soit correct.
Je continue de voir comment intégrer ça à tes macros.
Il n'y a pas besoin de filtrer par date et par équipe dans le cas où il n'y a qu'une ligne par date et équipe.
Il arrive que des fois il y ait deux fois la même équipe pour une même date, ce sont ces cas là qui sont problématiques...
En dehors de ces cas problématiques, il suffit de prendre ligne à ligne pour que ce soit correct.
Je continue de voir comment intégrer ça à tes macros.
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
24 juil. 2013 à 10:21
24 juil. 2013 à 10:21
Hello
C'est OK, la macro sélectionne maintenant la première ligne s'il n'y a pas d'autres lignes même date/même équipe.
Cependant je ne vois rien dans la macro qui supprime la ligne qui se trouve maintenant dans la feuille4...
Faut-il le rajouter, est-ce une manip que tu fais à la main ?
C'est OK, la macro sélectionne maintenant la première ligne s'il n'y a pas d'autres lignes même date/même équipe.
Cependant je ne vois rien dans la macro qui supprime la ligne qui se trouve maintenant dans la feuille4...
Faut-il le rajouter, est-ce une manip que tu fais à la main ?
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
24 juil. 2013 à 14:25
24 juil. 2013 à 14:25
J'ai ajouté la suppression dans la Feuil1 de ce qui est ajouté à la feuille 4.
Je t'ai mis toutes les macros dans ce fichier txt, il faut tout mettre dans un module, et supprimer les autres modules (les macros portent le même nom) et lancer ta macro "recoupement_complet".
Voili voilou
Je t'ai mis toutes les macros dans ce fichier txt, il faut tout mettre dans un module, et supprimer les autres modules (les macros portent le même nom) et lancer ta macro "recoupement_complet".
Voili voilou
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
24 juil. 2013 à 16:08
24 juil. 2013 à 16:08
Hmm
Tu as bien pris toute la macro du fichier txt, sans réutiliser les anciennes macros ?
Chez moi ça fonctionne...
Tu as bien pris toute la macro du fichier txt, sans réutiliser les anciennes macros ?
Chez moi ça fonctionne...
Oui j'ai repris tout après avoir effacé mes macros de base
mais il me dit :
erreur d'exécution "91:
variable objet ou variable de bloc non définie
et si je clique sur débogage il me met : ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear en jaune
cette ligne permet d'ouvrir le filtre auto? Puis les lignes suivante de sélectionner la 1ere ligne du champs 1?
mais il me dit :
erreur d'exécution "91:
variable objet ou variable de bloc non définie
et si je clique sur débogage il me met : ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear en jaune
cette ligne permet d'ouvrir le filtre auto? Puis les lignes suivante de sélectionner la 1ere ligne du champs 1?
26 juil. 2013 à 14:14
Merci clément !!!
ça marche dans mon 1er fichier, je l'intégre à mon 2ème fichier là, je croise les doigts !