Je cherche à copier automatiquement une feuille avec formule sur la totalité de mon classeur.
Dans la feuille initiale j'ai une somme à reporter sur la feuille d'après.A cette même valeur sera ajouté une autre valeur et ainsi de suite.
En clair: Dans toutes les feuilles la colonne b et la colonne c s'aditionneront et le resultat ira dans la colonne d.La colonne b de la (feuille +1) equivalent à la colonne d de la (feuille -1).J'ai une vingtaine de ligne à reporter sur la feuille d'après.J'ai 52 feuilles une par semaine.J'ai déja créé mon classeur avec ces 52 feuilles.
D'avance merci.
Normalement, comme je comprend les choses, cela devrait fonctionner directement dans la formule (en B2, B3, B4...), en écrivant nomfeuil au lieu de B$1.
En pratique, lorsqu'on le fait, cela fonctionne dans la feuille 2. Dès qu'on fait un copier-coller de la formule de la feuille 2 vers la feuille 3, une référence circulaire est affichée en feuille 2. Et pourtant, lorsqu'on utilise la fenêtre "Evaluation de formule" donnant les résultats étape par étape, c'est OK, étape par étape, sauf, malheureusement, la dernière.
Pour ce qui est du copier-coller de la colonne B, je n'y arrive que de feuille à feuille (de la feuille 2 vers la feuille 3, puis vers la 4 et ainsi de suite). Si je procède par groupe (de la feuille 2 vers les feuilles 3, 4, 5......10) (comme expliqué par David84 dans ce fil https://www.excel-downloads.com/threads/coller-meme-donnees-sur-x-feuilles.161053/), je n'obtiens pas le bon résultat dans la cellule B1 de chaque feuille : toutes ces cellules B1 m'affichent le nom de la dernière feuille. On obtient ensuite le bon nom de feuille en sélectionnant chaque cellule B1, en cliquant dans la barre de formule, et en faisant entrer. Ca fonctionne, mais ce n'est pas très pratique.
Re : Copier automatiquement une feuille avec formule à déplacer de feuille en feuille
Bonjour, salut Cisco,
Sous réserve d'avoir compris ta demande, ci-joint une proposition par macro à tester et à adapter à ton fichier :
Code:
Sub SommeOnglet()
Dim DerLigne&, i As Byte, j&, tablo
DerLigne = Sheets("Sem1").Range("D" & Rows.Count).End(xlUp).Row
For i = 1 To ThisWorkbook.Sheets.Count - 1
tablo = Sheets(i).Range("D1:D" & DerLigne).Value
Sheets(i + 1).Range("B1:B" & DerLigne) = tablo
For j = 1 To DerLigne
Sheets(i + 1).Range("D" & j).FormulaR1C1 = "=RC[-2]+RC[-1]" 'si tu veux laisser la formule (=B1+C1)
'Sheets(i + 1).Cells(j, 4) = _
'Sheets(i + 1).Cells(j, 2) + Sheets(i + 1).Cells(j, 3) 'si tu veux avoir la résultat sans la formule
Next j
Next i
End Sub
2 possibilités : laisser la formule en D (tel que le code le fait actuellement) ou n'avoir que le résultat sans la formule incrémentée (dans ce cas, placer un "'" devant la ligne 8 et enlever celles des lignes 9 et 10).
Le code est lancé via un bouton mais il est possible de faire autrement (à l'activation de la feuille1 par exemple).
A+