Copier une feuille vers divers classeurs

Bonjour tout le monde

j ai essaie ce module pour copier une feuille modifiee dans divers classeurs suivant module suivant.

Sub test()
Dim Fso As Object, MonRepertoire As String
Dim f1 As Object, f2 As Object, WB As Workbook
Dim ClasSou As Workbook, ClasBis As Workbook
Dim i As Byte
Set Fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "C:\DECLARATION 2022 FINAL DERNIER\Déclaration Societe 2022\zzzzz\"
For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders
For Each f2 In f1.Files
Set WB = Workbooks.Open(f2)
Worksheets("Recap annu").Delete
Workbooks(WB).Sheets("Imprimer declaration").Copy After:=.Sheets(7)
WB.Close SaveChanges:=True
Next f2
Next f1
End Sub

la feuille recap annu se delete au fichier destinataire

mais la copie du fichier ou se trouve la module vers le fichier destinataire erreur l indice n appartient pas

merci de votre aide.

bonjour Toton, bonjour le forum,

le code utilise le point (.) qui devrait faire référence à un classeur avec With... End With mais ce classeur n'est pas dans le code. Ça plante... Ci-dessous le code commenté :

Sub test()
Dim Fso As Object, MonRepertoire As String 'déclare les variables Fso et MonRepertoire
Dim f1 As Object, f2 As Object, WB As Workbook 'déclare les variables f1, f2 et WB
Dim ClasSou As Workbook, ClasBis As Workbook 'déclare les variables ClasSou et ClasBis (non utilisées dans le code ?)
Dim i As Byte 'déclare la variable i (non utilisée dans le code ?)

Set Fso = CreateObject("Scripting.FileSystemObject") 'définit Fso (explorateur de fichiers)
MonRepertoire = "C:\DECLARATION 2022 FINAL DERNIER\Déclaration Societe 2022\zzzzz\" 'définit le dossier de départ = MonRepertoire
For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders 'boucle 1 : sur tous les sous-dossiers f1 de MonRepertoire
    For Each f2 In f1.Files 'boucle 2 : sur chaque fichiers f2 du sous-dossier f1
        Set WB = Workbooks.Open(f2) 'définit le classeur WB en ouvrant le fichier f2
        Worksheets("Recap annu").Delete 'supprime l'onglet "Recap annu" de ce fichier
        'copie l'onglet "Imprimer declaration" de f2 après le 7ième onglet d'un classeur correspondant au . mais non définit !?  (ça devrait bugger ici)
        Workbooks(WB).Sheets("Imprimer declaration").Copy After:=.Sheets(7)
        WB.Close SaveChanges:=True 'ferme le classeur WB en enregistrant les modification
    Next f2 'prochain fichier de la boucle 2
Next f1 'prochaion sous-dossier de la bocule 1
End Sub

merci de votre aide mais ca buggue toujours dans sheets(2) voila capture d ecran

image

Re,

Oui, ça plantera toujours tant que le classeur n'est pas définit. Mais je ne peux pas deviner duquel il s'agit... Il faut que tu vois avec celui qui a créé ce code.


Rechercher des sujets similaires à "copier feuille divers classeurs"