Soucis sur Excel - Histoire de copie collé

Salut
Dans la feuille « Total »
Je veux entrer la somme des cellules B1 : G31 de la feuille 1 dans la cellule A1, puis la somme des cellules B1 :G31 de la feuille 2 dans la cellule A2

puis la somme des cellules B1 : G31 de la feuille 31 dans la cellule A31
Soit dans chaque cellule la formule A1=somme (‘1’ !B1 :G31)
puis A2= somme(‘1’ !B1 :G31) etc etc.

Existe-t’il une macro pour faire un copier coller sur la feuille « total » et les cellules A1 jusqu’à A31 en une seule fois.

Jusqu’ici, je suis obligé de faire cellule par cellule. Pour 31 cellules ça va, mais pour 200 ou plus ça devient fastidieux.

J’espère avoir été clair pour cette fois.

Merci d’avance
Bob

Sous Excel démarre l’enregistrement d’une nouvelle Macro, puis tape ta formule =SOMME(Feuil1!B1:FeuilG31) dans la cellule A1

Ainsi tu auras le code VB pour taper une formule dans une cellule.
Tu n’as plus qu’à mettre ça dans une boucle de 1 à 31 et c’est bon :slight_smile:

Merci Raynor pour ta réponse mais je suis pas trop calé en programmation.
Comment je mets en boucle ?
Bob

1- tu ne voulais pas mettre puis A2= somme(‘2’ !B1 :G31) etc etc. ?

2- si tu fais comme ca, comme B1 et G31 sont des références relatives, tu ne recopieras pas les mêmes zones d’une feuille à l’autre

3- essaie cette méthode, un peu compliquée mais sur le moment je n’en vois pas d’autre :
Dans ta feuille récapitulative, colonne A, tu tapes


="feuil"&LIGNE()&"!$B$1:$G$31"

(ici je pars du principe que le nom de la feuille est feuil1 ; sinon tu adaptes)
Dans la colonne B :


=somme(indirect(A1))

puis tu masques la colonne A
ca devrait correspondre à ce que tu cherches

C’est plutôt :

=SOMME(INDIRECT("feuil" & LIGNE() & "!B1:G31"))

effectivement, c’est beaucoup plus simple comme ca

Raynor
comme tu sembles maîtriser le sujet à fond, peux tu me dire pourquoi
B1:G31, et non pas $B$1:$G$31 ?

J’avoue ne pas être très fort sur le sujet, personnellement, je n’utilise que les références L1C1, je trouve que ca “colle” mieux aux .offset du VBA

C’est vite dit :slight_smile:
Ceci dit oui, tu as raison, c’est mieux avec les “$” vu qu’il va étendre la formule.[quote=“gcc”]
J’avoue ne pas être très fort sur le sujet, personnellement, je n’utilise que les références L1C1, je trouve que ca “colle” mieux aux .offset du VBA
[/quote]
Moi aussi je le préfère L1C1.

Merci pour vos réponses les gars,
Malheureusement je n’arrive pas à le faire fonctionner
Je ne suis pas très doué en VB, donc je ne comprends pas le processus pour mettre en place vos solutions

Sorry
Merci Bob

Il n’y a pas une ligne de VB la dedans ; c’est de l’excel pur et dur.
il te suffit de créer une feuille récapitulative vierge et d’inscrire dans la cellule A1

=SOMME(INDIRECT("feuil" & LIGNE() & "!$B$1:$G$31"))

et ensuite de recopier cette formule dans les cellules A2, A3 … autant de fois que tu as de feuilles de détail.

NB : l’exemple suppose que tes feuilles de détail se nomment Feuil1, Feuil2 …
et il faut impérativement commencer en ligne 1, sauf à adapter la composante LIGNE()

Merci à vous
J’ai enfin réussi.
A un de ces quatre
BOB :clap:

Bonsoir

B1:G1= Adresse relative
$b$11:$G$1= Adresse Absolue