Sauvegarder une copie d'un classeur avec SaveAs

  • Initiateur de la discussion Initiateur de la discussion Banosjo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !
 
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")
 
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
 
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 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
593
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
372
Réponses
9
Affichages
732
Réponses
3
Affichages
774
Retour