Enregistrer une feuille

Bonjour,

J'essaye de faire une macro pour enregistrer une feuille de mon classeur. J'ai trouvé sur ce forum un bout de code que j'ai tenté d'adapter

Sub Sauvegarder_KMZ()

Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer

Application.ScreenUpdating = False

ThisWorkbook.ActiveSheet.Copy
extension = ".xls"
chemin = "/user/manu/Desktop/"

nomfichier = "KMZ_Visees" & extension
With ActiveWorkbook

    .SaveAs FileName:=chemin & nomfichier

End With
End Sub

Le fichier s'enregistre bien mais j'ai un message d'erreur

capture d ecran 2020 11 16 a 17 09 43

De plus j'ai le classeur crée qui reste ouvert. J'ai mis une instruction .Close mais elle ferme mon classeur d'origine.

Pouvez vous m'aider à résoudre ce problème ?

Merci

Bonjour,

Pouvez-vous essayer ceci :

Sub Sauvegarder_KMZ()

Dim extension As String, chemin As String, nomfichier As String

extension = ".xls"
chemin = "C:\user\manu\Desktop\" '<<<< adapter lecteur (mis C: par défaut), les slash "/" ont été remplacés par des antislash "\"
nomfichier = "KMZ_Visees" & extension

ThisWorkbook.ActiveSheet.Copy
ActiveWorkbook.close savechanges:=true, FileName:=chemin & nomfichier

End Sub

Cdlt,

Merci,

Le code fonctionne plutôt bien, j'ai laissé les / car c'est sur un mac.

Quand je lance la macro la première fois c'est nickel, il enregistre mon fichier mais si je recommence et qu'un fichier KMZ_Visees.xls existe déjà j'ai un message "erreur 1004, impossible d'accéder au fichier KMZ_Visees.xls"

Problème résolu. Merci d'avoir pris du temps

Sub Sauvegarder_KMZ()

Dim extension As String, chemin As String, nomfichier As String

extension = ".xlsx"
chemin = "/Volumes/Documents_iMac/Desktop/Traitement des visées/"
nomfichier = "KMZ_Visees" & extension

Worksheets("KMZ").Copy

Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=True, FileName:=chemin & nomfichier
Application.DisplayAlerts = True

End Sub

J'aurais que sur mac, le séparateur est ":". Et pour éviter de se retrouver avec un doublon, vous pouvez horodater le fichier :

Sub Sauvegarder_KMZ()

Dim extension As String, chemin As String, nomfichier As String

extension = ".xlsx"
chemin = ":Volumes:Documents_iMac:Desktop:Traitement des visées:"
nomfichier = "KMZ_Visees " & format(now, "YYMMDD-HHMM" & extension

Worksheets("KMZ").Copy

Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=True, FileName:=chemin & nomfichier
Application.DisplayAlerts = True

End Sub

Cdlt,

le : est le séparateur des anciennes versions de MacOs. Maintenant c'est /

Ah d'accord, je suis à l'ancienne alors !

Bon ça marche alors ?

Cdlt,

Oui tout est Ok

Merci

Rechercher des sujets similaires à "enregistrer feuille"