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

Problème avec la boîte de dialogue commande Dialogs(wdDialogFileSaveAs)

5 réponses
Avatar
Corona
Office PRO 2003 sp2 / Windows XP Pro
(j'ai aussi Adobe Acrobat v7)

Bonjour,
Je distribue un document word (.doc) qui à l'ouverture pose quelques
questions à l'utilisateur. Les réponses reçues sont sauvées en tant que
variables de document (ActiveDocument.Variables.add ).
Après confirmation, la fenêtre de dialogue 'fichier sauver sous'
s'affiche pour sauver ce document en modèle. Et c'est là que j'ai un
problème. (voir code en fin de message)

La fenêtre affichée propose le bon répertoire ainsi que le type de
fichier. Mais dès que l'on clique sur le bouton 'Enregistrer', rien ne se
passe.

Si j'utilise cette boîte de dialogue sans passer pas VBA (Fichier/Sauver
sous ...) le document est bien sauver en modèle.

Si j'utilise la commande 'ActiveDocument.SaveAs (FileName)' cela
fonctionne bien également.

Je ne comprends plus rien.
Merci d'avance pour vos réponses.
Philippe

========= Code =====
Sub SaveTemplate(FileName As String)
FileName = NormalTemplate.Path & FileName & ".dot"
With Dialogs(wdDialogFileSaveAs)
.Name = FileName
.Format = wdFormatTemplate
.Show
End With
End Sub

5 réponses

Avatar
Modeste
Bonsour® Corona avec ferveur ;o))) vous nous disiez :

La fenêtre affichée propose le bon répertoire ainsi que le type de
fichier. Mais dès que l'on clique sur le bouton 'Enregistrer', rien ne se
passe.

Si j'utilise cette boîte de dialogue sans passer pas VBA (Fichier/Sauver
sous ...) le document est bien sauver en modèle.

Si j'utilise la commande 'ActiveDocument.SaveAs (FileName)' cela
fonctionne bien également.


Que contient au départ la variable FileName ???
elle ne devraient contenir que le nom sans le chemin et sans extension ....
Filename=Left(FileName,Len(FileName)-4

également le fait de préciser le format wdFormatTemplate dispense de préciser &
".dot"

il est possible également qu'il ai perturbation entre le nom local FileName avec
le nom de la variable externe passée en paramétre

' ========= Code ==== Sub SaveTemplate(FileName As String)
FileSauve = NormalTemplate.Path & FileName
With Dialogs(wdDialogFileSaveAs)
.Name = FileSauve
.Format = wdFormatTemplate
.Show
End With
End Sub

--
--
@+
;o)))

Avatar
Corona
Bonsoir GD,
Je te remercie pour ta réponse.
Le paramètre "FileName" contient le nom sous lequel le fichier doit être
sauvé (sans extension).
J'ai ajouté par la suite ' FileName = NormalTemplate.Path & "" &
FileName ' parce-que la fenêtre de dialogue proposait comme répertoire
'Bureau' et non pas le répertoire par défaut des modèles. De toute manière,
même en n'ayant que le nom du fichier, le sauvetage ne se fait pas. Je rame
:-)
Par contre, je ne comprends pas ce que tu entends par nom local
FileName.
Merci encore pour tes éclaircissements
Philippe

"Modeste" a écrit dans le message de news:
u0%
Bonsour® Corona avec ferveur ;o))) vous nous disiez :

La fenêtre affichée propose le bon répertoire ainsi que le type de
fichier. Mais dès que l'on clique sur le bouton 'Enregistrer', rien ne se
passe.

Si j'utilise cette boîte de dialogue sans passer pas VBA
(Fichier/Sauver
sous ...) le document est bien sauver en modèle.

Si j'utilise la commande 'ActiveDocument.SaveAs (FileName)' cela
fonctionne bien également.


Que contient au départ la variable FileName ???
elle ne devraient contenir que le nom sans le chemin et sans extension
....
Filename=Left(FileName,Len(FileName)-4

également le fait de préciser le format wdFormatTemplate dispense de
préciser & ".dot"

il est possible également qu'il ai perturbation entre le nom local
FileName avec le nom de la variable externe passée en paramétre

' ========= Code ==== > Sub SaveTemplate(FileName As String)
FileSauve = NormalTemplate.Path & FileName
With Dialogs(wdDialogFileSaveAs)
.Name = FileSauve
.Format = wdFormatTemplate
.Show
End With
End Sub

--
--
@+
;o)))





Avatar
Geo

Bonsoir GD,
Je te remercie pour ta réponse.
Le paramètre "FileName" contient le nom sous lequel le fichier doit être sauvé
(sans extension).
J'ai ajouté par la suite ' FileName = NormalTemplate.Path & "" & FileName '


Oui, si le NormalTemplate.Path est du genre c:Mes DocumentsModèles
et que le nom du fichier soit "Toto"
en fait ça donnait : c:Mes DocumentsModèlesToto
donc le modèle avait pour nom :
ModèlesToto qui se retrouvait dans c:Mes Documents

Un petit debug.print FileName donnerait ce genre d'information.
J'utilise debug.print sans modération, ça évite les maux de tête.

Ajoutez une variable pour récupérer le résultat du show, ça donnera
peut-être une indication.

Resultat = .show
debug.print "Chaud = " & Resultat

Récemment quelqu'un s'inquiétait que la même procédure ne marchait pas,
et il avait une erreur dans le nom de sa procédure.
Vous y passez bien, vous ?

--
A+

Avatar
Corona
Merci Géo,
Je vais tester (demain matin) avec debug.print (bien que j'ai mis des
traces avec msgbox - J'avoue pas très élégant-)
Je vous tiens au courant.
Philippe

"Geo" a écrit dans le message de news:


Bonsoir GD,
Je te remercie pour ta réponse.
Le paramètre "FileName" contient le nom sous lequel le fichier doit
être sauvé (sans extension).
J'ai ajouté par la suite ' FileName = NormalTemplate.Path & "" &
FileName '


Oui, si le NormalTemplate.Path est du genre c:Mes DocumentsModèles
et que le nom du fichier soit "Toto"
en fait ça donnait : c:Mes DocumentsModèlesToto
donc le modèle avait pour nom :
ModèlesToto qui se retrouvait dans c:Mes Documents

Un petit debug.print FileName donnerait ce genre d'information.
J'utilise debug.print sans modération, ça évite les maux de tête.

Ajoutez une variable pour récupérer le résultat du show, ça donnera
peut-être une indication.

Resultat = .show
debug.print "Chaud = " & Resultat

Récemment quelqu'un s'inquiétait que la même procédure ne marchait pas, et
il avait une erreur dans le nom de sa procédure.
Vous y passez bien, vous ?

--
A+





Avatar
Geo

Je vais tester (demain matin) avec debug.print (bien que j'ai mis des traces avec
msgbox - J'avoue pas très élégant-)


L'élégance ? Bof, du moment que c'est efficace.
Le débug.print à amha des avantages :
Pas besoin de les supprimer quand c'est au point, sauf éventuellement
pour des questions de performances,
mais surtout on a un ensemble de résultats disponibles sous les yeux
et donc pouvoir les relire, même après l'arrêt de la macro.
Le msgbox a l'avantage d'interrompre le déroulement du programme.

--
A+