OVH Cloud OVH Cloud

Préciser le chemin d'enregistrement

2 réponses
Avatar
Daniel
Bonjour,

Je voudrais inclure dans une macro une commande qui précise l'emplacement
qui doit être affiché par une boîte de dialogue "Enregistrer Sous".

Merci pour votre aide.

Daniel

2 réponses

Avatar
Lasperches Denis
bonjour
Daniel wrote:
Bonjour,

Je voudrais inclure dans une macro une commande qui précise
l'emplacement qui doit être affiché par une boîte de dialogue
"Enregistrer Sous".


avec l'enregistreur de macro j'ai trouvé cela :
ChangeFileOpenDirectory "unité:répertoire"

A voir si cela te convient...

--
Petit Denis

Avatar
Jean-Guy Marcil
Daniel was telling us:
Daniel nous racontait que :

Bonjour,

Je voudrais inclure dans une macro une commande qui précise
l'emplacement qui doit être affiché par une boîte de dialogue
"Enregistrer Sous".

Merci pour votre aide.



Voici un example que vous pourrez modifer. J'avais utilisé cette macro pour
forcer les utilisateurs à enregistrer dans un dossier précis (ou les
sous-dossiers de ce dossier)

En nommant ces macros "FileSave" et "FileSaveAs", elles sont invoquées dès
que l'utilisateur utilise l'interface habituelle de Word pour enregistrer
des documents (Fichier > Enregistrer, Barre d'outils, etc.)

Il faut que le chemin choisi existe déjà, sinon Word ira dans le dossier
d'enregistrement par défaut.

'_______________________________________
'Pour modifier cette macro selon vos besoin,
'changer le chemin dans:
' Const SaveFolder As String = "X:Test"
'... et modifier le nombre de caractères
'dans le test Left$, dans la ligne:
' If LCase$(Left$(CurDir, 7)) & "" <> LCase(SaveFolder) Then

'_______________________________________
Sub FileSave()

'Enregistrer les changements
'si le document à déjà été enregistré
If ActiveDocument.Path <> "" Then
ActiveDocument.Save
Else
FileSaveAs
End If

End Sub
'_______________________________________

'_______________________________________
Sub FileSaveAs()

Dim UserSaveDialog As Dialog
Set UserSaveDialog = Dialogs(wdDialogFileSaveAs)
Const SaveFolder As String = "X:Test"

With UserSaveDialog
.Name = SaveFolder
If .Display Then
'Si l'utilisateur ne clique pas sur le bouton Annuler,
'quitter avec un message si le chemin a été changé,
'mais ne pas quitter si un sous-dossier
'a été créé dans le dossier cible
'On utilise 7 et non 8 car le dernier n'est pas
'inclus dans CurDir (Car X:Test = 8 caractères
'mais X:Test = 7 caractères), c'est pourquoi on
'rajoute le avec & ""
If LCase$(Left$(CurDir, 7)) & "" <> LCase(SaveFolder) Then
MsgBox "Ce document ne peut être enregistré " _
& "dans ce dossier. Essayez à nouveau.", _
vbExclamation, "Accès refusé"
Exit Sub
End If
'Enregistrer le document
UserSaveDialog.Execute
End If
End With

End Sub
'_______________________________________

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org