XL pour MAC Vba - Macro enregistrer sous...

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 !

ArnaudSi

XLDnaute Nouveau
Bonjour,

J'essaye en vain d'exécuter une macro pour enregistrer un fichier sur un dossier en particulier.

Le défi ici consiste à ce que la macro enregistre le fichier sur un dossier précis ( dossier en réseau de type Dropbox ) sur chaque poste.

Est ce posible?

Merci.

Ci joint le code :

VB:
Sub Enregistrer_Fichiers()
Dim chemin As String, Fichier As String
With ThisWorkbook
nom = Environ("USER")
chemin = "Macintosh HD/Utilisateurs/" & nom & "/Synologydrive/Hello/Suivi/"
    With Sheets("Commande").Select
    Fichier = "Sauvegarde " & Range("B5").Value & " Ref " & Range("G5").Value & " Saisie le " & Format(Now(), "dd-mm-yyyy à Hh-Nn") & ".xls" 'Nom du fichier avec le nom du client
        ActiveWorkbook.SaveAs Filename:= _
        chemin & Fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    End With
    Sheets("Calcul").Select
    MsgBox Fichier & (" a été sauvegardé dans le dossier.")
End With
End Sub
 
Bonsoir ArnaudSi,

Ce n'est vraiment pas un défi d'enregistrer dans un dossier précis s'il existe...

Mais votre code ne va pas, remplacez ces 2 lignes :
VB:
With Sheets("Commande").Select
Fichier = "Sauvegarde " & Range("B5").Value & " Ref " & Range("G5").Value & " Saisie le " & Format(Now(), "dd-mm-yyyy à Hh-Nn") & ".xls" 'Nom du fichier avec le nom du client
par celles-ci :
Code:
With Sheets("Commande")
    Fichier = "Sauvegarde " & .Range("B5") & " Ref " & .Range("G5") & " Saisie le " & Format(Now, "dd-mm-yyyy à hh-mm")
Avec SaveAs le fichier sera enregistré en .xlsm, pour l'enregistrer en .xls il faut modifier le FileFormat.

A+
 
Bonjour Job57,

Merci pour votre réponse.

Une fenêtre m'indique :
Erreur d'exécution "1004" :
Vos modifications n'ont pas pu être enregistrées dans "Sauvegarde Ref Saisie le 13-11-2020 à 08-370" en raison d'une violation de partage. Essayez d'enregistrer vos modifications dans un fichier différents.

J'ai essayé de changer le chemin vers un dossier non partagé mais une autre erreur d'exécution 1004 apparait aussi.

Merci.
 
Merci pour votre réponse.

Après quelques recherches je crois que le problème est que lorsque je demande le nom d'utilisateur je reçoit une réponse de type "nom" & " " & "prénom"; alors que la réponse attendu pour trouver le chemin est "nomprénom" (Il ne doit pas y avoir d'espace entre le nom et le prénom) .

VB:
MsgBox "Current user is " & Application.UserName


Mais pour obtenir ce résultat j'ai trouver une formule pour palier ce problème :

Code:
Function GetUserNameMac() As String
    Dim sMyScript As String

    sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"

    GetUserNameMac = MacScript(sMyScript)
End Function


Mais je ne sais pas comment l'intégrer dans la macro :

Code:
Sub Enregistrer_Fichiers()
Dim chemin As String, Fichier As String
With ThisWorkbook
nom = Environ("USER")
chemin = "Macintosh HD/Utilisateurs/" & nom & "/Synologydrive/Hello/Suivi/"
    With Sheets("Commande")
    Fichier = "Sauvegarde " & .Range("B5") & " Ref " & .Range("G5") & " Saisie le " & Format(Now, "dd-mm-yyyy à hh-mm")'Nom du fichier avec le nom du client
        ActiveWorkbook.SaveAs Filename:= _
        chemin & Fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    End With
    Sheets("Calcul").Select
    MsgBox Fichier & (" a été sauvegardé dans le dossier.")
End With
End Sub
 
Bonjour

J'ai trouvé une solution qui fonctionne :

VB:
Sub Enregistrer_Fichiersvs_2()
Dim chemin As String, Fichier As String
With ThisWorkbook
nom = Environ("USER")
chemin = "Macintosh HD/Utilisateurs/" & nom & "/Synologydrive/Hello/Suivi/"
    With Sheets("Commande")
    Fichier = "Sauvegarde " & .Range("B5") & " Ref " & .Range("G5") & " Saisie le " & Format(Now, "dd-mm-yyyy à hh-mm")
    ChDir "/Users/" & nom & "/SynologyDrive/Hello/Suivi/"
    ActiveWorkbook.SaveAs FileName:= _
         "/Users/" & nom & "/SynologyDrive/Hello/Suivi/" & Fichier & ".xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    End With
        Sheets("Calcul").Select
    MsgBox Fichier & (" a été sauvegardé dans le dossier.")
End With
End Sub

Merci encore,
À bientôt!
 
- 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
3
Affichages
809
Réponses
3
Affichages
534
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
74
Réponses
4
Affichages
358
Réponses
2
Affichages
400
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
792
Réponses
3
Affichages
233
Réponses
5
Affichages
399
Retour