[Excel 2007] Copier plusieurs feuilles d'un classeur

Bonjour à tous du Forum,

J'ai un classeur qui contient 7 feuilles. Avec le code suivant, seulement 1 feuille est copiée dans un nouveau classeur.

Code :

With ThisWorkbook.Sheets("Contrat")

         'créer un nouveau fichier Excel avec une seule feuille
         Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
         'copier la feuille "Contrat vers le nouveau fichier Excel
         .Copy newWbk.Sheets(1)

Maintenant, j'aimerais modifier le code pour qu'il me copie 2 feuilles supplémentaires. J'ai essayé de modifier le code, mais je n'arrive à rien. J'ai toujours des erreurs. Si quelqu'un pourrait m'aider, je pourrais ensuite finaliser mon code.

Merci de votre aide,

Claude

Bonsoir,

Essaie avec ce code en remplaçant Feuil2 et Feuil3 par le nom des 2 feuilles à copier.

With ThisWorkbook
    Sheets(Array("Contrat", "Feuil2", "Feuil3")).Copy
End With

A te relire

Bonsoir Dan, merci pour ton aide. Le code copie mes 3 feuilles mais le restant du code me donne une erreur et n'est pas complété. Le restant du code doit supprimer des boutons et enregistrer le nouveau classeur. Je vais placer tout le code ici, si tu as le temps de vérifier...

With ThisWorkbook.Sheets("Contrat")

        'créer un nouveau fichier Excel avec une seule feuille
        Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
        'copier la feuille "Contrat vers le nouveau fichier Excel
        .Copy newWbk.Sheets(1)
        'supprimer le bouton 1 "numero et date"
        newWbk.Sheets("Contrat").Shapes("CommandButton1").Select
        Selection.Delete
        'supprimer le deuxieme bouton "importer donnees"
        newWbk.Sheets("Contrat").Shapes("CommandButton2").Select
        Selection.Delete
        'supprimer le troisieme bouton "creer commande"
        newWbk.Sheets("Contrat").Shapes("CommandButton3").Select
        Selection.Delete
        'supprimer le quatrieme bouton "effacer les données"
        newWbk.Sheets("Contrat").Shapes("CommandButton4").Select
        Selection.Delete
        'supprimer le cinquieme bouton "commande du fournisseur"
        newWbk.Sheets("Contrat").Shapes("CommandButton5").Select
        Selection.Delete
        'supprimer le sixieme bouton "reinitialiser"
        newWbk.Sheets("Contrat").Shapes("CommandButton6").Select
        Selection.Delete
        'empecher le message "voulez vous supprimer la feuille ...'
        Application.DisplayAlerts = False
        'suppression de la feuille vide "Feuill1" ou "Sheet1"
        newWbk.Sheets(2).Delete
        Application.DisplayAlerts = True
        'sauver le nouveau classeur
        newWbk.SaveAs dossierSauvegarde & "\" & NomFichier
        'exporter en format PDF
        ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=dossierSauvegarde & "\" & NomFichier & ".pdf" _
                , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                :=False, OpenAfterPublish:=False
        'fermer le nouveau classeur
        newWbk.Close True

End With

Encore merci pour ton aide,

Claude

Re,

Essaie en rempaçant le code que tu m'as donné par celui-ci :

Dim i As Byte
With ThisWorkbook
    Sheets(Array("Contrat", "Feuil2", "Feuil3")).Copy
End With
With ActiveWorkbook
For i = 1 To .Sheets.Count
    Sheets(i).DrawingObjects.Delete
Next
    .SaveAs dossierSauvegarde & "\" & NomFichier
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=dossierSauvegarde & "\" & NomFichier & ".pdf" _
                , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                :=False, OpenAfterPublish:=False
    .Close True
End With

Cela eu été mieux de mettre ton fichier en ligne. On aurait mieux cerné ton souci

Si ok, n'oublie pas de cliquer sur le V vert pour cloturer le fil

Amicalement

Rechercher des sujets similaires à "2007 copier feuilles classeur"