Copie feuille vers un nouveau classeur et sauvegarde de ce nouveau classeur

Signaler
Messages postés
114
Date d'inscription
vendredi 9 avril 2010
Statut
Membre
Dernière intervention
16 août 2011
-
Messages postés
106
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
22 avril 2010
-
Bonjour

Je voudrais copier un onglet du classeur Excel "contrat" dans un autre classeur excel et enregistrer ce nouveau classeur sous le nom : nom+prénom+date.
mais ma macro est bloqué lors du collage de de la feuille dans le nouveau classeur. Merci de m'aider svp !!! l'erreur de débogage se trouve sur la ligne en rouge

Sub sauvegarde()
Dim nomfichier As String
Dim chemin As String
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet


chemin = "C:\contrat"
nomfichier = Sheets("avenant").cells(2, 1) & Sheets("avenant").cells(2, 2)


'On créer l'objet Excel
Set xlApp = CreateObject("Excel.Application")
'On défini le nombre d'onglets (ici 5)
xlApp.SheetsInNewWorkbook = 5
'On ajoute un classeur
Set xlBook = xlApp.Workbooks.Add
'On donne un nom au classeur
xlBook.SaveAs (chemin & nomfichier & "-" & Format(Date, "dd.mm.yy") & ".xls")
'On rend le classeur visible
xlApp.Visible = True
'On créer l'objet onglet dans le nouveau classeur créé
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Name = "contrat"


Windows("contrats.xls").Activate
Sheets("text").Select
Range("A1:A100").Select
Selection.Copy

Excel.Workbooks(chemin & nomfichier & "-" & Format(Date, "dd.mm.yy") & ".xls").Activate
Sheets("contrat").Select
Range("a1").Select
ActiveSheet.PasteSpecial

Application.CutCopyMode = False ' pour effacer le pressepapier sinon j'ai le message de trop plein quand je ferme excel

Columns("A:A").ColumnWidth = 92.71
Rows("12:64").Select
Rows("12:64").EntireRow.AutoFit
ActiveWindow.SmallScroll Down:=-21
Range("A45").Select

End Sub

nanie

3 réponses

Messages postés
7537
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2021
127
Bonjour,
Vous trouverz peut-être la solution à cette adresse:
http://frederic.sigonneau.free.fr/code/Feuilles/CopieSauvegardeFeuille.txt
@+
Messages postés
114
Date d'inscription
vendredi 9 avril 2010
Statut
Membre
Dernière intervention
16 août 2011

Bonjour,

Je trouve un peu compliquer la macro, pas très bien compris. En fait il faudrait juste que dès qu'on a copier dans un nouveau classeur et bien cela enregistre nom+prénom+date. mon problème est juste de sélectionner ce nouveau classeur et de lui dire de le sauvegarder.
Je suis sure que c'est tout simple... Il y a pas quelqu'un pour m'aider ???

nanie
Messages postés
106
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
22 avril 2010

Bonjour nanie12, je pense que tu ne devrais pas remettre le chemin de ton fichier lors de l'activation.

Excel.Workbooks(chemin & nomfichier & "-" & Format(Date, "dd.mm.yy") & ".xls").Activate

mais plutot
Excel.Workbooks(nomfichier & "-" & Format(Date, "dd.mm.yy") & ".xls").Activate 


En effet pour ouvrir ou enregistrer le classeur il est bon d'indiquer le chemin, cependant pour activer le classeur il faut juste indiquer le nom d'un classeur déjà ouvert dans excel.
Excel ne fait pas de différence de fichier au niveau du chemin du fichier mais simplement au niveau du nom.
Essaye d'ouvrir deux fichiers "test.xls", l'un dans "C:" et l'autre dans "D:" et tu verras qu'Excel refusera l'ouverture de ce deuxième fichier car un fichier du même nom existe déjà.