Erreur dans un code

Bonjour et joyeuses fêtes,

Dans un classeur Excel souS office 365 sur un MacBook Pro, J'ai programmé le code suivant dans ThisWorkbook pour enregistrer une sauvegarde mais aucun résultat. Je pense que mon code est erroné.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Procédure permettant de réaliser un fichier de sauvegarde à la fermeture
'Déclaration des variables
Dim NomDossier As String
Dim NomFichier As String
'Affectation des variables
NomDossier = "Macintosh HD:\Documents\SauvegardeTrésorerie"
'Désactiver les messages d'alertes
Application.DisplayAlerts = False
'Création du nom du fichier de sauvegarde (Date + Nom)
NomFichier = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & "Sauv21.xlsm"
'Sauvegarde du fichier backup
ActiveWorkbook.SaveCopyAs NomDossier & NomFichier
'On affiche le message de confirmation
MsgBox "Votre fichier de sauvegarde intitul_ : " & NomFichier & vbNewLine & _
"est dans le dossier suivant : " & NomDossier, vbOKOnly + vbInformation, "CONFIRMATION"

End Sub

Merci pour votre aide

Bonjour,

Il faut rajouter "\" à la fin du nom de dossier

NomDossier = "Macintosh HD:\Documents\SauvegardeTrésorerie\"

Et si tu ne veut pas avoir de message de demande d'enregistrement

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Procédure permettant de réaliser un fichier de sauvegarde à la fermeture
'Déclaration des variables
Dim NomDossier As String
Dim NomFichier As String
'Affectation des variables
NomDossier = "Macintosh HD:\Documents\SauvegardeTrésorerie\"
'Désactiver les messages d'alertes
Application.DisplayAlerts = True
'Création du nom du fichier de sauvegarde (Date + Nom)
NomFichier = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & "Sauv21.xlsm"
'Sauvegarde du fichier backup
ActiveWorkbook.SaveCopyAs NomDossier & NomFichier
'On affiche le message de confirmation
Application.DisplayAlerts = False
MsgBox "Votre fichier de sauvegarde intitul_ : " & NomFichier & vbNewLine & _
"est dans le dossier suivant : " & NomDossier, vbOKOnly + vbInformation, "CONFIRMATION"
Application.Quit
End Sub

Bonjour et bonnes fêtes à tous,

Sur mac, le séparateur est soit ":", soit "/". Sinon, on peut toujours utiliser un chemin "universel" avec :

dim sep$
sep = application.pathseparator
dossier = join(array("Macintosh HD", "Documents", "SauvegardeTrésorerie"), sep) & sep

Par ailleurs, il est possible d'utiliser la fonction Format pour éviter l'utilisation des 3 fonctions Day, Month et Year :

fichier = Format(Date, "YYYY-MM-DD") & "_" & "Sauv21.xlsm"

A noter que pour un tri chronologique, on préfère avoir les dates au format Année-Mois-Jour, c'est bien plus clair.

Cdlt,

Bonjour et bonne année

J'ai tenté de modifier mon code avec vos suggestions sans résultats efficace. Attention je ne suis qu'un bricoleur en la matière. Pourtant j'aimerais bien que cela fonctionne. Voici le dernière version de ce code :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Procédure permettant de réaliser un fichier de sauvegarde à la fermeture
'Déclaration des variables
Dim sep$
sep = Application.PathSeparator
Dim NomFichier As String
'Affectation des variables
NomDossier = Join(Array("Macintosh HD", "Documents", "SauvegardeTrésorerie"), sep) & sep
'Désactiver les messages d'alertes
Application.DisplayAlerts = True
'Création du nom du fichier de sauvegarde (Date + Nom)
NomFichier = Format(Date, "YYYY-MM-DD") & "_" & "Sauv21.xlsm"
'Sauvegarde du fichier backup
ActiveWorkbook.SaveCopyAs NomDossier & NomFichier
'On affiche le message de confirmation
Application.DisplayAlerts = False
MsgBox "Votre fichier de sauvegarde intitul_ : " & NomFichier & vbNewLine & _
"est dans le dossier suivant : " & NomDossier, vbOKOnly + vbInformation, "CONFIRMATION"
Application.Quit
End Sub

Merci cordialement

Bonjour,

Merci, c'est gentil.

Pouvez-vous exécuter ce code simple et me dire ce qu'il renvoie :

sub test()
msgbox thisworkbook.path
end sub

Cdlt,

Salut à tous,

Macintosh HD\Documents\SauvegardeTrésorerie c'est un tantinet bizarre comme chemin je pense.

Bonjour,

en executant ce code voilà ce que j'obtiens :

/Users/danielbondilange/Desktop

Pour ce qui est du chemin j'ai bricolé ça en picorant ici ou là des idées sur la toile sans pour autant être certain du bien fondé de ce chemin.

Pour être précis je ne retrouve pas ma sauvegarde. Il faut dire qu'apple est pour moi nouveau et je doute de mon choix.

Cordialement, merci de votre attention.

Salut,

Si tu veux enregistrer le fichier dans le répertoire "\SauvegardeTrésorerie" dans "Mes Documents" alors tu dois :

Récupérer le chemin du répertoire "Mes Documents" : Environ("USERPROFILE")
Récupérer le cas échéant ton séparateur : strSep = Application.PathSeparator
Créer le nom de fichier : NomFichier = Format(Date, "YYYY-MM-DD") & "_" & "Sauv21.xlsm"
Concaténer le tout :

SaveFullPath = Environ("USERPROFILE") & strSep & "Documents" & strSep & "SauvegardeTrésorerie" & strSep & NomFichier


Bonjour à tous,

@Jean-Paul : Je ne suis pas sûr que la fonction Environ() fonctionne sur Mac. Il y a sûrement des alternatives en recourant à un AppleScript.

En tout cas, dans le doute, si le fichier est conçu pour une utilisation personnelle, voici un essai avec le chemin en dur :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Procédure permettant de réaliser un fichier de sauvegarde à la fermeture
'Déclaration des variables
Dim NomFichier As String
'Affectation des variables
NomDossier = "/Users/danielbondilange/Documents/SauvegardeTrésorerie/"
'Désactiver les messages d'alertes
Application.DisplayAlerts = True
'Création du nom du fichier de sauvegarde (Date + Nom)
NomFichier = Format(Date, "YYYY-MM-DD") & "_" & "Sauv21.xlsm"
'Sauvegarde du fichier backup
ActiveWorkbook.SaveCopyAs NomDossier & NomFichier
'On affiche le message de confirmation
Application.DisplayAlerts = False
MsgBox "Votre fichier de sauvegarde intitul_ : " & NomFichier & vbNewLine & _
"est dans le dossier suivant : " & NomDossier, vbOKOnly + vbInformation, "CONFIRMATION"
Application.Quit
End Sub

@BONDILANGE : Merci de ne pas mettre de votes négatifs, sans même prendre la peine de donner une réponse, aux intervenants qui font la démarche de vous venir en aide, de façon bénévole, c'est pas très sympa...

Cdlt,

Salut,

Exact 3GB. Indisponible sur Mac.

Par contre apparemment on peut retrouver les chemins des dossiers spéciaux sur Mac.

Bonjour,

Apple a augmenté son niveau de sécurité. Du coup avec excel 2016 , vous ne pouvez pas enregistrer dans un répertoire du MAC.

allez plutôt voir ici -->

/Users/danielbondilange/Library/Group Containers/UBF8T346G9.Office/

Pour y aller, une fois dans le FInder, cliquez sur ALLER dans le menu et appuyez sur la touche ALT, cela vous montrera le dossier Bibliothèque qui vous permettra d'accéder à ce répertoire

Cordialement

Rechercher des sujets similaires à "erreur code"