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

nanie12 Messages postés 114 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 août 2011 - 2 avril 2010 à 12:09
daffy17 Messages postés 106 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 22 avril 2010 - 6 avril 2010 à 09:55
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
3 avril 2010 à 17:18
Bonjour,
Vous trouverz peut-être la solution à cette adresse:
http://frederic.sigonneau.free.fr/code/Feuilles/CopieSauvegardeFeuille.txt
@+
0
nanie12 Messages postés 114 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 août 2011
6 avril 2010 à 09:27
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
0
daffy17 Messages postés 106 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 22 avril 2010
6 avril 2010 à 09:55
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à.
0
Rejoignez-nous