Transformer une macro excel à l'aide d'une autre macro

serbai Messages postés 5 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 8 août 2012 - 2 févr. 2009 à 09:48
xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 septembre 2010 - 3 févr. 2009 à 11:39
Bonjour à tous,



Tout d'abord j'espère être sur le bon forum en ce qui concerne ma question.

Est-il possible de créer une macro sur excel qui permette de modifier
automatiquement les références des cellules d'une autre macro, sachant
que la modification des références sera toujours constante.


Je voudrais créer une macro qui me
transformerait automatiquement le "a3" en "a4" puis en "a5", "a6",....
et le ("10:10") en ("25:25") puis en ("40:40").

Ma macro agit de la façon suivante : Elle copie les données de la semaines 1 qui se trouvent sur le premier tableau en ligne 10 et va les copier sur la feuille "semaine1" en ligne 3, puis les données de la ligne 11 de la semaine2 qu'elle va copier sur la ligne 3 de la feuille "semaine2" et ainsi de suite pour les autres ligne.
Pour le deuxième tableau les références aux données ont changé : les données de la semaine1 sont sur la ligne 25 et doivent être copiées sur la ligne 4 de la feuille "semaine1"et celles de la semaine 2 sont sur la ligne 26 et doivent être copiées sur la ligne 4 de la feuille "semaine2" et ainsi de suite.
Il faut donc pour que ma macro fonctionne, transformer manuellement le "A3" en "A4", le "A4" en "A5", etc... et le ("10:10") en ("25:25"), le
("11:11") en ("26:26") puis le ("12:12") en ("27:27"), etc.. ce qui est très fastidieux.
Voilà un aperçu de ma macro (je n'en ai reproduit qu'une partie).


Sheets("Recap").Select


Rows("10:10").Select


Selection.Copy


Sheets("semaine1").Select


Range("a3").Select


ActiveSheet.Paste Link:= True


Sheets("Recap").Select


Rows ("11:11") .Select


Selection.Copy


Sheets("semaine2").Select


Range("a3").Select


ActiveSheet.Paste Link: =True

Y a-t-il un moyen de la transformer à l'aide d'une autre macro ou autrement afin d'obtenir cela :

Sheets("Recap").Select


Rows("25:25").Select


Selection.Copy


Sheets("semaine1").Select


Range("a4").Select


ActiveSheet.Paste Link:= True


Sheets("Recap").Select


Rows ("26:26") .Select


Selection.Copy


Sheets("semaine2").Select


Range("a4").Select


ActiveSheet.Paste Link: =True

puis ensuite cela

Sheets("Recap").Select


Rows("40:40").Select


Selection.Copy


Sheets("semaine1").Select


Range("a5").Select


ActiveSheet.Paste Link:= True


Sheets("Recap").Select


Rows ("41:41") .Select


Selection.Copy


Sheets("semaine2").Select


Range("a5").Select


ActiveSheet.Paste Link: =True

J'espère que je me suis fait comprendre.


Si vous avez une idée je vous en remercie par avance.
S'il vous plaît indiquez-moi la procédure à suivre si une solution existe car je suis débutant.

1 réponse

xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 septembre 2010
3 févr. 2009 à 11:39
Salut,

à priori, tu cherches à faire un suivi hebdo. Ne vaudrait-il mieux pas faire un classeur Excel contenant 52 semaines (52 feuilles identiques) et une feuille suivi qui résume l'ensemble des dernières données ? L'avantage que j'y vois c'est que tu peux facilement faire évoluer ton classeur sans en faire une usine à gaz et garder en mémoire les données pour faire du reporting d'une année sur l'autre.
0