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
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
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
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org
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