Sauvegarde Classeur mais sans formule

Résolu
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Grâce à ce forum j'ai un code qui me permet de sauvegarder un classeur xlsm
en xlsx avec la date et l heure ( le chemin et le nom étant indiqués dans des cellules nommées).

Par contre, j'ai un soucis lié à l'utilisation , la sauvegarde se réalise avec les formules.
Il me faudrait la même chose mais avec une sauvegarde sans formule, chaque onglet du classeur copier coller valeur.

Voici le code

Sub Sauvegarde_sur_ordre()
Dim chemin As String
Dim fichier As String
Dim nom As String
nom = ThisWorkbook.FullName
chemin = Range("Chemin").Text

fichier = Range("Nom_Classeur").Text & " " & "le" & " " & Format(Now, "dd-mm-yyyy" & " à " & "hh""h""mm") & " " & "" & ".xlsx"

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs chemin & fichier, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.SaveAs nom, FileFormat:=xlOpenXMLWorkbookMacroEnabled

Application.DisplayAlerts = True

End Sub

Par avance merci de votre aide

1 réponse

  1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
     
    Bonjour,

    Vous pouvez rajouter le copier / coller dans le code avant de sauvegarder comme ceci :

    Sub Sauvegarde_sur_ordre() 
    Dim chemin As String 
    Dim fichier As String 
    Dim nom As String 
    Dim i As Integer
    
    nom = ThisWorkbook.FullName 
    chemin = Range("Chemin").Text 
    
    fichier = Range("Nom_Classeur").Text & " " & "le" & " " & Format(Now, "dd-mm-yyyy" & " à " & "hh""h""mm") & " " & "" & ".xlsx" 
    
    For i = 1 To ThisWorkbook.Sheets.Count
    
    Sheets(i).Cells.Copy
    Sheets(i).Cells.PasteSpecial Paste:=xlPasteValues
    
    Application.CutCopyMode = False
    
    Next i
    
    
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs chemin & fichier, FileFormat:=xlOpenXMLWorkbook 
    ActiveWorkbook.SaveAs nom, FileFormat:=xlOpenXMLWorkbookMacroEnabled 
    
    Application.DisplayAlerts = True 
    
    End Sub 


    En espérant avoir pu vous aider...

    Cordialement.
    1
    1. CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
       
      Bonjour et merci,

      Je viens d'essayer et le soucis c'est que le copier coller valeur s'effectue sur le classeur source.
      J'aimerais que le classeur source ne bouge pas car c'est celui sur lequel je travaille régulièrement,
      par contre je souhaite que le second fichier (sauvegarde) s'effectue en format xlsx pour supprimer la macro et en copier coller valeur.


      Cdt
      0
    2. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
       
      Pardon, je n'avais pas compris.

      Dans ce cas, il suffit de changer de place ma partie de code :

      Sub Sauvegarde_sur_ordre() 
      Dim chemin As String 
      Dim fichier As String 
      Dim nom As String 
      Dim i As Integer
      
      nom = ThisWorkbook.FullName 
      chemin = Range("Chemin").Text 
      
      fichier = Range("Nom_Classeur").Text & " " & "le" & " " & Format(Now, "dd-mm-yyyy" & " à " & "hh""h""mm") & " " & "" & ".xlsx" 
      
      Application.DisplayAlerts = False
      ActiveWorkbook.SaveAs chemin & fichier, FileFormat:=xlOpenXMLWorkbook 
      ActiveWorkbook.SaveAs nom, FileFormat:=xlOpenXMLWorkbookMacroEnabled 
      
      For i = 1 To ActiveWorkbook.Sheets.Count
      
      Sheets(i).Cells.Copy
      Sheets(i).Cells.PasteSpecial Paste:=xlPasteValues
      
      Application.CutCopyMode = False
      
      Next i
      
      ActiveWorkbook.Save
      
      Application.DisplayAlerts = True 
      
      End Sub 
      0