Excel 2010: problème exécution d'une macro

Résolu/Fermé
-
 El-sol -
Bonjour,

J'ai créé une macro dans une feuille de travail pour trier et organiser toutes les données de cette feuille. Et le but est qu'à chaque mois, je vais rajouter une feuille pour le mois suivant et je veux exécuter la macro dans cette nouvelle feuille.
La macro marche dans la feuille où je l'ai créée mais pas comme il faut dans les autres feuilles. Même qu'elle défait un peu la première feuille.

J'imagine que ça doit être la façon dont j'ai créé ma macro au départ.

Où est-ce que j'ai manqué le bateau ???

merci


10 réponses

Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Bonjour,

Ben déjà il faudrait voir ton classeur (allégé) avec qcq données et les macros...
cjoint.com et coller ici le lien fourni.

eric
http://cjoint.com/?3EEqDJMQhGK

dans la feuille nommée mai, la macro a été exécutée.
Et ce sont les mêmes données que dans la 2e feuille.
Regarde ce qui se passe si tu exécutes la macro dans la 2e feuille.
le short cut est CTRL-y pour l'exécuter.

Le résultat doit être : les dépôts tous en haut, les retraits en bas. Ensuite, dans chaque section, ça doit être trié par la colonne C, puis B, puis A.

Et j'aimerais aussi savoir si je peux associer ma macro à un bouton que je mettrais dans ma barre d'outil d'accès rapide, en autant que je puisse la faire fonctionner partout.

merci
je crois que j'ai trouvé une partie de la réponse.
Le bug se trouve dans le fait que lorsque j'ai créé la macro, la feuille s'appelait alors "commercial" mais maintenant elle s'appelle mai, et le mois prochain, la nouvelle feuille va s'appeler juin.
Alors qu'est-ce qu'il faut que je mette dans ma macro pour indiquer que je veux qu'elle s'exécute dans la feuille dans laquelle je me trouve, peu importe le nom de la feuille, car ça va toujours varier.

merci.
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Il faut que la feuille où agit ta macro soit exactement de la même forme que celle où elle a été crée.
Tu enlève des colonnes et des lignes, comment veux-tu qu'elle marche correctement à nouveau sur la feuille Mai qui ne ressemble pas à l'originale ?

dans la feuille nommée mai, la macro a été exécutée.
Et ce sont les mêmes données que dans la 2e feuille.
Regarde ce qui se passe si tu exécutes la macro dans la 2e feuille.

Non, ce ne sont pas les même données au même endroit

eric
quand j'ai créé la macro, le document était identique à celui de la 2e feuille.
La macro est dans le but de modifier le tout et le résultat final est dans la première feuille.
Et à chaque mois, il y aura une nouvelle feuille et le document sera identique à celui de la 2e feuille, en fait de format. Bien sûr les montants, descriptions et les dates seront différents.

Mais quand je vais exécuter ma macro dans la nouvelle feuille, je ne veux pas qu'elle s'exécute à nouveau dans les autres feuilles.

Ou bedon, au lieu de mettre mon mois de juin dans le même fichier, que je le mette dans un nouveau fichier, mais la macro ne sera pas dans ce fichier.
Comment puis-je exécuter une macro dans un nouveau fichier ?
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Pour l'instant elle plante sur ...FormatConditions... car pas de MFC présente.

Si tu ne fais pas référence à une feuille précise les instructions s'appliqueront à la feuille active.
Donc ne pas mettre de ActiveWorkbook.Worksheets("mai") mais rien, ou activesheet éventuellement.

eric
et comment ne pas faire référence ?
J'ai rien précisé à ce sujet, ça s'est mis tout seul dans la macro
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Je l'ai écrit au-dessus...
c'est pas assez clair.

voici le texte dans la macro
à partir de où jusqu'à où je dois enlever:

Cells.Select
ActiveWorkbook.Worksheets("Commercial").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Commercial").Sort.SortFields.Add(Range("D2:D1000"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(218, _
150, 148)
ActiveWorkbook.Worksheets("Commercial").Sort.SortFields.Add Key:=Range( _
"B2:B1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Commercial").Sort.SortFields.Add Key:=Range( _
"A2:A1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal


j'ai essayé d'en enlever mais la macro ne fonctionne plus.
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
J'avais écrit :
Donc ne pas mettre de ActiveWorkbook.Worksheets("mai") mais rien, ou activesheet éventuellement.

Donc essaie en remplaçant :
ActiveWorkbook.Worksheets("Commercial").Sort.SortFields.Clear
par :
Activesheet.Sort.SortFields.Clear
et pareil sur les autres. Ca agira sur la feuille active et non sur 'Commercial'.

eric
ça fonctionne mais en enlevant aussi le "commercial"
il me reste
ActiveSheet.sort........
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
heu oui, je n'avais pas fait assez le ménage...
remplacer :
ActiveWorkbook.Worksheets("Commercial").Sort.SortFields.Clear
par :
Activesheet.Sort.SortFields.Clear

eric
ok
maintenant, ça fonctionne et en plus, j'ai sauvegardé ma macro dans un classeur personnel de macro.

Maintenant, comme j'aurai plusieurs macro dans mon classeur, y a-t-il moyen de les attribuer à des boutons sur mon ruban ?
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Je ne connais pas suffisament 2007-2010 pour te guider là dessus
eric
ok mais merci beaucoup pour ton aide.
tout fonctionne à merveille.
je mettrai une autre question pour le bouton.

bonne journée.