Changer plusieurs cells dans plusieurs feuilles définis

Bonjour,

J'ai un fichier qui contient plusieurs feuilles.

Sur les feuilles suivantes : "OE 100-D1", "STE USI 100-K", "ACH", "EDU-S", "EM-S KV", "EM-S T", "EM-S P", "EXM" ; il y a la même mise en forme, des cellules vides à remplir.

Je souhaite remplir plusieurs cellules sur chacune de ses feuilles à partir d'une feuille "Form_Insp" contenant la même mise en forme.

Pour se faire, j'utilise la macro ci-dessous :

Sub EnTête()

Dim Feuille As Worksheet
 For Each Feuille In ThisWorkbook.Worksheets
  Select Case Feuille.Name
   Case "OE 100-D1", "STE USI 100-K", "ACH", "EDU-S", "EM-S KV", "EM-S T", "EM-S P", "EXM"
   Case Else ' feuille à traiter

                Feuille.Range("J6") = ThisWorkbook.Worksheets("Form_Insp").Range("J6")
                Feuille.Range("D11") = ThisWorkbook.Worksheets("Form_Insp").Range("D11")
                Feuille.Range("D12") = ThisWorkbook.Worksheets("Form_Insp").Range("D12")
                Feuille.Range("G14") = ThisWorkbook.Worksheets("Form_Insp").Range("G14")
                Feuille.Range("U14") = ThisWorkbook.Worksheets("Form_Insp").Range("U14")
                Feuille.Range("F18") = ThisWorkbook.Worksheets("Form_Insp").Range("E18")
                Feuille.Range("R20") = ThisWorkbook.Worksheets("Form_Insp").Range("R18")
                Feuille.Range("X20") = ThisWorkbook.Worksheets("Form_Insp").Range("X18")
                Feuille.Range("V7") = ThisWorkbook.Worksheets("Form_Insp").Range("N8")
                'Matériaux
                Feuille.Range("B23") = ThisWorkbook.Worksheets("Form_Insp").Range("B23")
                Feuille.Range("B24") = ThisWorkbook.Worksheets("Form_Insp").Range("B24")

                'Type
                Feuille.Range("D23") = ThisWorkbook.Worksheets("Form_Insp").Range("D23")
                Feuille.Range("D24") = ThisWorkbook.Worksheets("Form_Insp").Range("D24")

                'Ep
                Feuille.Range("I23") = ThisWorkbook.Worksheets("Form_Insp").Range("I23")
                Feuille.Range("I24") = ThisWorkbook.Worksheets("Form_Insp").Range("I24")

                'mm
                Feuille.Range("K23") = ThisWorkbook.Worksheets("Form_Insp").Range("K23")
                Feuille.Range("K24") = ThisWorkbook.Worksheets("Form_Insp").Range("K24")

                'Matière
                Feuille.Range("M23") = ThisWorkbook.Worksheets("Form_Insp").Range("M23")
                Feuille.Range("M24") = ThisWorkbook.Worksheets("Form_Insp").Range("M24")

                'Norme matière
                Feuille.Range("P23") = ThisWorkbook.Worksheets("Form_Insp").Range("P23")
                Feuille.Range("P24") = ThisWorkbook.Worksheets("Form_Insp").Range("P24")

                'sous-groupe
                Feuille.Range("T23") = ThisWorkbook.Worksheets("Form_Insp").Range("T23")
                Feuille.Range("T24") = ThisWorkbook.Worksheets("Form_Insp").Range("T24")

                'Matériaux d'apport
                Feuille.Range("W23") = ThisWorkbook.Worksheets("Form_Insp").Range("W23")

End Select
Next Feuille

End Sub

Celle-ci se lance sans erreur mais toutes les cellules désignées restent vides sur chacune des feuilles désignées.

Une idée ?

Merci pour votre aide !

Bonjour

Dans votre boucle, le code ne complétera que les feuilles différentes des feuilles nommées "OE 100-D1", "STE USI 100-K", "ACH", "EDU-S", "EM-S KV", "EM-S T", "EM-S P", "EXM"

Correct ? Si non, enlevez simplement le CASE ELSE qui ne sert à rien


edit : Vous pouvez essayer votre code comme ceci plutôt

Sub EnTête()
Dim feuille()
Dim i As Byte

feuille = Array("OE 100-D1", "STE USI 100-K", "ACH", "EDU-S", "EM-S KV", "EM-S T", "EM-S P", "EXM")

With ThisWorkbook.Worksheets("Form_Insp")
    For i = 0 To UBound(feuille)
        Sheets(feuille(i)).Range("J6") = .Range("J6")
        Sheets(feuille(i)).Range("D11") = .Range("D11")
        Sheets(feuille(i)).Range("D12") = .Range("D12")
        Sheets(feuille(i)).Range("G14") = .Range("G14")
        Sheets(feuille(i)).Range("U14") = .Range("U14")
        Sheets(feuille(i)).Range("F18") = .Range("E18")
        Sheets(feuille(i)).Range("R20") = .Range("R18")
        Sheets(feuille(i)).Range("X20") = .Range("X18")
        Sheets(feuille(i)).Range("V7") = .Range("N8")

        'Matériaux
        Sheets(feuille(i)).Range("B23") = .Range("B23")
        Sheets(feuille(i)).Range("B24") = .Range("B24")

        'Type
        Sheets(feuille(i)).Range("D23") = .Range("D23")
        Sheets(feuille(i)).Range("D24") = .Range("D24")

        'Ep
        Sheets(feuille(i)).Range("I23") = .Range("I23")
        Sheets(feuille(i)).Range("I24") = .Range("I24")

        'mm
        Sheets(feuille(i)).Range("K23") = .Range("K23")
        Sheets(feuille(i)).Range("K24") = .Range("K24")

        'Matière
        Sheets(feuille(i)).Range("M23") = .Range("M23")
        Sheets(feuille(i)).Range("M24") = .Range("M24")

        'Norme matière
        Sheets(feuille(i)).Range("P23") = .Range("P23")
        Sheets(feuille(i)).Range("P24") = .Range("P24")

        'sous-groupe
        Sheets(feuille(i)).Range("T23") = .Range("T23")
        Sheets(feuille(i)).Range("T24") = .Range("T24")

        'Matériaux d'apport
        Sheets(feuille(i)).Range("W23") = .Range("W23")
    Next i
End With
End Sub

Si ok pensez à -->

Crdlt

Edit : modifié code

Bonsoir Dan !

Effectivement, je viens de m'en rendre compte sur les autres feuilles qui étaient cachées...

Merci !

Bonjour Dan,

Je ne sais pas ce qu'il s'est passé depuis hier, mais après avoir lancé la macro (qui fonctionnait très bien!) maintenant j'ai un message d'erreur : "erreur 424" Objet requis" (je n'ai supprimé aucune feuille).

L'erreur se produit à "feuille(i).Range("J6") = .Range("J6") avec "For i = 0" comme "vide"

Une idée d'où cela peut provenir ?

Merci,

"erreur 424" Objet requis" (je n'ai supprimé aucune feuille).

Si vous avez une erreur c'est que vous avez modifié quelque chose. Genre masquer une feuille, une feuille mal nommée (attention aux espaces, à l'orthographe, majuscules...), feuille et/ou cellules protégées

Si l'erreur se produit à i =0 c'est la feuille OE 100-D1 qui est incriminée ou la feuille "Form_insp"

Dites-moi

Bonjour Dan,

J'ai bien fait attention à ce que toutes les feuilles soient nommées correctement.

Aucune feuille protégée.

Les feuilles étaient masquées mais en début de code je les affiche et en fin de code les masque avec "Sheets("OE 100-D1").visible = True / False

L'erreur continue de se produire à i = 0

Une idée ?

Merci,

Bonjour

Je ne sais pas ce qu'il s'est passé depuis hier, mais après avoir lancé la macro (qui fonctionnait très bien!) maintenant j'ai un message d'erreur : "erreur 424" Objet requis" (je n'ai supprimé aucune feuille).

Hum... Ce n'est pas possible que cela ait déjà fonctionné hier je viens de me rendre compte qu'il y a une faute dans le code que je vous ai donné.
En fait, à toutes les lignes du code que je vous ai données, ce n'est pas :

feuille(i)=.Range("..

mais

Sheets(feuille(i)).Range("....

J'ai corrigé le code complet dans mon poste précédent--> https://forum.excel-pratique.com/s/goto/1150625

Reprenez celui-là

Désolé ....

Crdlt

Rechercher des sujets similaires à "changer feuilles definis"