Sauvegarder une copie d'un classeur avec SaveAs

Banosjo

XLDnaute Junior
Bonjour à tous,

Comme la fonction SaveCopyAs ne fonctionne pas en Excel 2007 pour sauver une copie en .xls, je dois y aller avec la fonction SaveAs. Je désire cependant continuer de travailler dans le classeur maître ..

Le code suivant fonctionne mais c'est lourd car il doit recharger le classeur maître qui fait 375Ko et en plus, je dois lui spécifier l'adresse du classeur maître (je n'y arrive pas autrement .. des idées pour la typo ?) :

Code:
Dim Nodemande As String
Dim nom As String
Dim Chemin As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim newWkb As Workbook

Nodemande = ActiveSheet.Cells(2, 5).Value
nom = "Reparticiel_" & Nodemande
Chemin = ActiveSheet.Cells(3, 8).Value & "\" & ActiveSheet.Cells(6, 6).Value

With ActiveWorkbook
    If Val(Application.Version) < 12 Then
      ' You use Excel 97-2003
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
      ' You use Excel 2007-2010
        FileExtStr = ".xls": FileFormatNum = 56
    End If
End With
    
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False
End With

ActiveWorkbook.SaveAs Chemin & "\" & nom & FileExtStr, FileFormat:=FileFormatNum
Set newWkb = ActiveWorkbook
Application.Workbooks.Open Filename:="C:\@Data\Réparticiel.xls"
newWkb.Close SaveChanges:=False
Set newWkb = Nothing

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True
End With

Je pourrais aussi faire un second SaveAs pour revenir à mon classeur maître mais ça serait également lourd et bizarre il me semble ..

J'ai eu beau chercher, je n'ai pas réussi à trouver d'alternatives. Seriez-vous en mesure de m'éclairer ?

Merci de votre aide !
 

Vinc

XLDnaute Junior
Re : Sauvegarder une copie d'un classeur avec SaveAs

Bonjour Banosjo,
J'utilise Excel 2007 et la fonction SaveCopyAs...

Code:
ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "\BDD_Planning\MARDI\BackUp_Planning.xlsm")
 

Banosjo

XLDnaute Junior
Re : Sauvegarder une copie d'un classeur avec SaveAs

Re,

J'ai effectivement essayé l'enregistreur de macro mais sans succès .. le truc c'est que je veux continuer de travailler dans mon classeur maître après la sauvegarde et non dans le classeur sauvegardé (qui est dans un autre emplacement) ..

Le mieux que j'ai trouvé à date (code ci-bas), c'est de faire deux SaveAs consécutifs, le premier qui sauve le classeur à l'emplacement voulu et le second qui le resauve à l'emplacement d'origine .. mais 2 SaveAs consécutifs doublent le temps de sauvegarde et l'opération prend en ce moment environ 7 secondes (fichier de 400Ko), ce qui est énorme.

Y aurait-il une autre solution plus efficace ?

VB:
Dim Nodemande As String
Dim nom As String
Dim Chemin As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim srcWkb As String

Nodemande = ActiveSheet.Cells(2, 5).Value
nom = "Reparticiel_" & Nodemande
Chemin = ActiveSheet.Cells(3, 8).Value & "\" & ActiveSheet.Cells(6, 6).Value

With ActiveWorkbook
    If Val(Application.Version) < 12 Then
      ' You use Excel 97-2003
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
      ' You use Excel 2007-2010
        FileExtStr = ".xls": FileFormatNum = 56
    End If
End With
    
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False
End With

srcWbk = ActiveWorkbook.path & "\" & ActiveWorkbook.Name
ActiveWorkbook.SaveAs Chemin & "\" & nom & FileExtStr, FileFormat:=FileFormatNum
ActiveWorkbook.SaveAs srcWbk, FileFormat:=FileFormatNum

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True
End With
 

Banosjo

XLDnaute Junior
Re : Sauvegarder une copie d'un classeur avec SaveAs

Re, Merci pour vos réponses !

Cependant, le SaveCopyAs ne fonctionne pas dans mon cas ..

À noter que mon classeur maître est en .xls (car certains l'utiliseront sous Excel 2003 sans pack de compatibilité) avec des fichiers de sauvegarde en .xls .. mais qu'il doit pouvoir être utilisé en Excel 2007 (dans ce cas là les fichiers de sauvegarde pourraient être sauvés dans le format de 2007 - .xlsx par exemple) ..

Je poursuis mes recherches de mon côté mais si vous avez des idées n'hésitez pas :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin