Macro excel

serbai Messages postés 5 Statut Membre -  
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
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.
Un exemple : J'ai une macro de ce type qui agit sur plusieurs feuilles de mon classeur (ici j'ai mis 2 feuilles : semaine1 et semaine2)

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

Je voudrais créer une macro qui me transforma automatiquement le "a3" en "a4" puis en "a5", "a6",.... et ("10:10") en ("25:25") puis en ("40:40").
Les références en ("ax") augmentant de 1 à chaque fois et celles en ("x:x") augmentant de 15 à chaque fois.
Etant donné que cette macro comporte beaucoup de ces références, il est fastidieux de transformer tout manuellement.
J'espère que je me suis bien fait comprendre.
Meci d'avance pour vos réponses
A voir également:

1 réponse

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Ce que tu envisages est possible mais c'est une vrai usine à gaz pour la mettre en oeuvre.

Je pense que tu devrais plutôt chercher sur d'autres pistes comme par exemple fonctionner avec des plages nommées ou mettre tes références dans des cellules dédiées.

par exemple :

Sheets("Recap").Rows([ligne1].value).Copy _
   destination:=Sheets("semaine1").Range([semaine].value + s)

Tu as une cellule nommée "ligne1" dans laquelle tu mets 10 dans ton cas 1
et une cellule nommée "semaine" dans laquelle tu mets A3

Tu peux aussi faire une boucle :

For s =1 to maxisemaine
     Sheets("Recap").Rows([ligne1].value + s).Copy _
   destination:=Sheets("semaine" & s).Range([semaine].value)
next s
0