Filldown d'un Range dans toutes les feuilles séléctionnés

Bonjour le forum,

Après avoir inséré une ligne (position 18) dans tous mes onglets "données" (feuilles numéros 2 à n-10), j'aimerais étirer la formule de certaines cellules (Range("G17:AM17")) dans les cellules d'en dessous (Range("G18:AM18")) pour toutes mes feuilles "données".

La dernière feuille "fin" est la "n-10"ième car j'ai 10 feuilles résultat.

Voici ma proposition de code qui n'effectue ce que je veux que pour la feuille active..

En PJ une version de mon classeur en plus court et sans les feuilles résultat finales car beaucoup trop lourd.

Merci pour votre aide

Sub insertion()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = False
Dim KO As Range
Dim C As Range
Dim D As Range
Dim E As Range
Set KO = Range("G17:AM17")

fin = ActiveWorkbook.Sheets.Count - 10
'
For i = 2 To fin
    Set A = Sheets(i)
        With A
            KO.Select
                For Each C In KO
                    Set D = C.Offset(1, 0)
                    Set E = Union(C, D)
                E.FillDown
                Next C
        End With
A = Empty
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True

End Sub
26apd.zip (318.79 Ko)

Bonjour,

Eh ben, tu te compliques la vie. Déjà, tu devrais mieux expliquer que ça ton problème. D'après ce que j'ai compris, voici une solution qui peut marcher et aussi éviter les messages d'erreur avant de poster un fichier :

Sub insertion()
    For Each sh In Worksheets
        If sh.Name <> "décomposition" Then
            sh.Range("G17:AM17").Copy
            sh.Range("G18").PasteSpecial xlFormulas
        End If
    Next sh
End Sub

Edit : Tant mieux si tu t'y retrouves.

Merci beaucoup pour ton aide,

J'ai adapté car "décomposition" n'est pas la seule feuille que je souhaitais épargner.

fin = ActiveWorkbook.Sheets.Count - 10
For Each sh In Worksheets
        If sh.Index >= 2 And sh.Index <= fin Then
            sh.Range("G17:AM17").Copy
            sh.Range("G18").PasteSpecial xlFormulas
        End If
    Next sh

A bientôt le forum

Rechercher des sujets similaires à "filldown range toutes feuilles selectionnes"