[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 WithA 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 WithEncore 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 WithCela 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