Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Enregistrer sous

5 réponses
Avatar
Domi
Bonjour à tous,

Depuis Access, je pilote Word avec le code suivant.

With W_App
.Documents.Open ...
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
If .name <> "" then
CheminDocument = .Name
.execute
End if
End With
End With

J'ouvre donc un document, affiche la boîte de dialogue "Enregistrer sous" et
je récupère le nom du document, soit "Test.doc" par exemple.

C'est presque parfait, mais j'aurais besoin de récupérer la totalité du
chemin, soit "C:\...\...\Test.doc".

Est-ce possible ?

Merci d'avance de vos réponses.

Domi

5 réponses

Avatar
Tisane
Bonjour Domi,

Depuis Access, je pilote Word avec le code suivant.
With W_App
.Documents.Open ...
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
If .name <> "" then
CheminDocument = .Name
.execute
End if
End With
End With
J'ouvre donc un document, affiche la boîte de dialogue "Enregistrer sous"
et
je récupère le nom du document, soit "Test.doc" par exemple.
C'est presque parfait, mais j'aurais besoin de récupérer la totalité du
chemin, soit "C:......Test.doc".


La propriété FullName renvoie le nom du fichier et son chemin d'accès.
As-tu essayé avec ActiveDocument.FullName ?

--
Tisane

Avatar
Domi
Bonjour tisane, et merci.

Effectivement, FullName renvoie bien le chemin complet.

Mon code actuel :

With W_App
.Documents.Open CurrentProject.Path & "Word" & "temp.doc"
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
'ici, il faudrait pouvoir tester la valeur de Name
.Execute
End With

NomDoc = .Application.ActiveDocument.FullName

Mais j'ai encore un problème. Comment contrôler que l'utilisateur n'a pas
utilisé l'opération. Etant donné que j'utilise Name pour spécifier le
répertoire d'ouverture, celui ci n'est pas = "" après Display.

Domi2




Bonjour Domi,

Depuis Access, je pilote Word avec le code suivant.
With W_App
.Documents.Open ...
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
If .name <> "" then
CheminDocument = .Name
.execute
End if
End With
End With
J'ouvre donc un document, affiche la boîte de dialogue "Enregistrer sous"
et
je récupère le nom du document, soit "Test.doc" par exemple.
C'est presque parfait, mais j'aurais besoin de récupérer la totalité du
chemin, soit "C:......Test.doc".


La propriété FullName renvoie le nom du fichier et son chemin d'accès.
As-tu essayé avec ActiveDocument.FullName ?

--
Tisane





Avatar
Tisane
Mais j'ai encore un problème. Comment contrôler que l'utilisateur n'a pas
utilisé l'opération. Etant donné que j'utilise Name pour spécifier le
répertoire d'ouverture, celui ci n'est pas = "" après Display.


Tu peux déjà simplifier me semble-t-il avec
ActiveDocument.SaveAs xxxx
Pour le reste, je ne suis pas certaine de comprendre...
Contrôler que l'utilisateur n'a pas déjà "enregistré sous" ou n'a pas déjà
cliqué sur le bouton qui génère l'ouverture du document ?
Ton code est dans Access n'est-ce pas ?

--
Tisane


Bonjour tisane, et merci.

Effectivement, FullName renvoie bien le chemin complet.
Mon code actuel :

With W_App
.Documents.Open CurrentProject.Path & "Word" & "temp.doc"
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
'ici, il faudrait pouvoir tester la valeur de Name
.Execute
End With

NomDoc = .Application.ActiveDocument.FullName

Domi2


Bonjour Domi,

Depuis Access, je pilote Word avec le code suivant.
With W_App
.Documents.Open ...
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
If .name <> "" then
CheminDocument = .Name
.execute
End if
End With
End With
J'ouvre donc un document, affiche la boîte de dialogue "Enregistrer
sous"
et
je récupère le nom du document, soit "Test.doc" par exemple.
C'est presque parfait, mais j'aurais besoin de récupérer la totalité du
chemin, soit "C:......Test.doc".


La propriété FullName renvoie le nom du fichier et son chemin d'accès.
As-tu essayé avec ActiveDocument.FullName ?

--
Tisane





Avatar
Geo

Mon code actuel :

With W_App
.Documents.Open CurrentProject.Path & "Word" & "temp.doc"
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
'ici, il faudrait pouvoir tester la valeur de Name
.Execute
End With

NomDoc = .Application.ActiveDocument.FullName

Mais j'ai encore un problème. Comment contrôler que l'utilisateur n'a pas
utilisé l'opération. Etant donné que j'utilise Name pour spécifier le
répertoire d'ouverture, celui ci n'est pas = "" après Display.


S'il a cliqué sur "Annuler" ?
Il me semble bien que la propriété Name est vide.
ou alors if .display = 0 then ' Annuler
Ou au lieu de Display + Execute, utilisez show qui retourne 0

--
A+

Avatar
Domi
Bonjour Geo,

Tisane : oui, je travaille depuis Access, le but étant d'ouvrir ou de
générer un document (c'est ok), faire passer Word au premier plan (c'est ok
aussi) et afficher la boîte de dialogue Enregistrer sous avec un répertoire
spécifique (ça fonctionne).

De là, je dois récupérer le chemin complet du document enregistré pour le
stocker dans un champ de la base Access, champ qui me servira de lien avec le
document.

Et naturellement, il faut que je teste le cas où l'utilisateur annule
l'opération. Avec votre aide, j'en suis là et cela à l'air de fonctionner,
mais on peut peut-être encore améliorer. Mon code :

With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireSpecifique
If .Show = 0 Then
'L'utilisateur a annulé. Traitement particulier
End If
End With

CheminComplet = .ActiveDocument.FullName

'On continue le traitement

Je vais encore faire quelques essais, mais cela m'a l'air ok.

Merci pour votre aide. Si vous avez de meilleures idées...

Domi2



Mon code actuel :

With W_App
.Documents.Open CurrentProject.Path & "Word" & "temp.doc"
.Visible = True
With .Dialogs.Item(wdDialogFileSaveAs)
.Name = RepertoireMaman
.Display
'ici, il faudrait pouvoir tester la valeur de Name
.Execute
End With

NomDoc = .Application.ActiveDocument.FullName

Mais j'ai encore un problème. Comment contrôler que l'utilisateur n'a pas
utilisé l'opération. Etant donné que j'utilise Name pour spécifier le
répertoire d'ouverture, celui ci n'est pas = "" après Display.


S'il a cliqué sur "Annuler" ?
Il me semble bien que la propriété Name est vide.
ou alors if .display = 0 then ' Annuler
Ou au lieu de Display + Execute, utilisez show qui retourne 0

--
A+