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

VBA : ChangeFileOpenDirectory ne fonctionne pas bien

18 réponses
Avatar
Souriane
Bonjour,

Quelqu=92un peut-il m=92aider avec ce probl=E8me d=92ouverture de bo=EEte d=
e
dialogue!

La macro suivante ne fonctionne pas du premier coup:
ChangeFileOpenDirectory "z:\temp\"
Application.Dialogs(wdDialogFileOpen).Show

Elle ouvre dans =93Mes Documents=94. Que je fasse la m=EAme macro avec
n=92importe quel r=E9pertoire, c=92est toujours =AB Mes Documents =BB qui e=
st
ouvert. Cependant, si je vais manuellement dans n=92importe quel de mes
r=E9pertoires et ouvre un document, le referme et ex=E9cute la macro.
Tout est beau, =E7a fonctionne maintenant! Si je ferme Word et le
r=E9ouvre, la macro fonctionne encore. Si je ferme ma session Windows,
reviens dans Windows, ouvre Word, =E7a fonctionne plus.

Pourtant, si je fais la macro suivante, elle fonctionne tr=E8s bien =E0
tout coup n=92importe quand :
ChangeFileOpenDirectory "z:\temp\"
Documents.Open FileName:=3D"test.doc", ConfirmConversions:=3DTrue,
ReadOnly _
:=3DFalse, AddToRecentFiles:=3DFalse, PasswordDocument:=3D"",
PasswordTemplate _
:=3D"", Revert:=3DFalse, WritePasswordDocument:=3D"",
WritePasswordTemplate:=3D"" _
, Format:=3DwdOpenFormatAuto

Avez-vous des suggestions?

J=92ai Word 2003
Je travaille en r=E9seau.

Merci!

Guylaine

10 réponses

1 2
Avatar
Geo
Bonjour Souriane

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Bonjour,

Quelqu’un peut-il m’aider avec ce problème d’ouverture de boîte de
dialogue!

La macro suivante ne fonctionne pas du premier coup:
ChangeFileOpenDirectory "z:temp"
Application.Dialogs(wdDialogFileOpen).Show



Je viens d'essayer avec 2007 :

ChangeFileOpenDirectory "F:Temp"
Application.Dialogs(wdDialogFileOpen).Show

Ca marche bien. A l'occasion j'essaierai avec 2003, mais ce ne serait
pas le premier bogue qui ait été corrigé en Vba 2007.

Sinon vous pourriez essayer en utilisant :
Options.DefaultFilePath(wdDocumentsPath) = "z:temp"

Pour le faire proprement, il faudrait sauvegarder la valeur courante en
début de macro et la restituer à la fin.

--
A+
Avatar
Geo
Re

La macro suivante ne fonctionne pas du premier coup:
ChangeFileOpenDirectory "z:temp"
Application.Dialogs(wdDialogFileOpen).Show

Elle ouvre dans “Mes Documents”. Que je fasse la même macro avec
n’importe quel répertoire, c’est toujours « Mes Documents » qui est
ouvert. Cependant, si je vais manuellement dans n’importe quel de mes
répertoires et ouvre un document, le referme et exécute la macro.
Tout est beau, ça fonctionne maintenant! Si je ferme Word et le
réouvre, la macro fonctionne encore. Si je ferme ma session Windows,
reviens dans Windows, ouvre Word, ça fonctionne plus.



Je viens de faire des essais avec 2003, ça fonctionne bien.
Apparemment il y a des cas qui posent problème et qui ramènent sur mes
Documents, par exemple d'essayer d'ouvrir un lecteur vide (lecteur de
cartes mémoires) sinon ça se passe bien.
Vous avez une gestion d'erreur active ?
On error .... ?

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



--
A+
Avatar
guyguy
Bonjour Groupe,

Le hasard fait parfois bien les choses. Je m'apprêtais à soumettre le même
problème quand je suis tombé sur le message de Souriane.

Il semble effectivement y avoir un bug avec Word 2003. J'ai essayé la
suggestion de Geo et ça fonctionne.

Voici mon code.

Public Sub InsererDocumentation

' Ouvrir le dossier Documentation pour insérer un fichier à la position
du curseur.

Dim strCurrentDir as String, strNewDir as String

strCurrentDir = CurDir
strNewDir = "C:Documentation"
Options.DefaultFilePath(wdDocumentsPath) = strNewDir
Dialogs(wdDialogInsertFile).Show
Options.DefaultFilePath(wdDocumentsPath) = strCurrentDir

End Sub

Merci à Geo!



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


Bonjour,

Quelqu’un peut-il m’aider avec ce problème d’ouverture de boîte de
dialogue!

La macro suivante ne fonctionne pas du premier coup:
ChangeFileOpenDirectory "z:temp"
Application.Dialogs(wdDialogFileOpen).Show

Elle ouvre dans “Mes Documents”. Que je fasse la même macro avec
n’importe quel répertoire, c’est toujours « Mes Documents » qui est
ouvert. Cependant, si je vais manuellement dans n’importe quel de mes
répertoires et ouvre un document, le referme et exécute la macro.
Tout est beau, ça fonctionne maintenant! Si je ferme Word et le
réouvre, la macro fonctionne encore. Si je ferme ma session Windows,
reviens dans Windows, ouvre Word, ça fonctionne plus.

Pourtant, si je fais la macro suivante, elle fonctionne très bien à
tout coup n’importe quand :
ChangeFileOpenDirectory "z:temp"
Documents.Open FileName:="test.doc", ConfirmConversions:=True,
ReadOnly _
:úlse, AddToRecentFiles:úlse, PasswordDocument:="",
PasswordTemplate _
:="", Revert:úlse, WritePasswordDocument:="",
WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto

Avez-vous des suggestions?

J’ai Word 2003
Je travaille en réseau.

Merci!

Guylaine
Avatar
Geo
Bonjour Guyguy

Le hasard fait parfois bien les choses. Je m'apprêtais à soumettre le même problème
quand je suis tombé sur le message de Souriane.



Pas banal en effet.
J'aurais plutôt fait :

strNewDir = Options.DefaultFilePath(wdDocumentsPath)
Options.DefaultFilePath(wdDocumentsPath) = "C:Documentation"
Dialogs(wdDialogInsertFile).Show
Options.DefaultFilePath(wdDocumentsPath) = strCurrentDir

Comme ça vous remettez la maison dans l'état où vous l'avez trouvée.

Merci à Geo!



Deux heureux pour le prix d'un(e) on en redemande !

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



--
A+
Avatar
heureux-oli
Salut,

J'ai une autre proposition qui ne change pas l'option de Word.

Mais ça reste une question de goût.

Pour ouvrir des fichiers, j'utlise l'objet FileDialog qui fonctionne depuis
2003.
si elle n'est pas active, il faut ajouter la référence Office au projet.


'************************************************
Sub OuvrirDoc()
Dim oDlg As FileDialog

Set oDlg = Application.FileDialog(msoFileDialogFilePicker)

With oDlg
.InitialFileName = "C:Temp"
.Show
End With

Debug.Print oDlg.SelectedItems(1)
Set oDlg = Nothing


End Sub
'************************************************



--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/

----------------------------------------------------------------------------------

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

Bonjour Guyguy

Le hasard fait parfois bien les choses. Je m'apprêtais à soumettre le
même problème quand je suis tombé sur le message de Souriane.



Pas banal en effet.
J'aurais plutôt fait :

strNewDir = Options.DefaultFilePath(wdDocumentsPath)
Options.DefaultFilePath(wdDocumentsPath) = "C:Documentation"
Dialogs(wdDialogInsertFile).Show
Options.DefaultFilePath(wdDocumentsPath) = strCurrentDir

Comme ça vous remettez la maison dans l'état où vous l'avez trouvée.

Merci à Geo!



Deux heureux pour le prix d'un(e) on en redemande !

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



--
A+




Avatar
Geo
Bonjour

Pour ouvrir des fichiers, j'utlise l'objet FileDialog qui fonctionne depuis 2003.
si elle n'est pas active, il faut ajouter la référence Office au projet.



Tu as raison, cette fonction offre de nombreuses possibilités.
Curieusement elle n'est disponible, sauf erreur de ma part, que dans
Word alors qu'elle est référencée dans "Office".

--
A+
Avatar
heureux-oli
Salut Geo,

Je viens de faire un essai et sous 2007, on peut l'utiliser avec d'autres
applications de la suite.

Et ça fonctionne aussi sous Excel 2003.

Mais il faut ajouter la référence à Microsoft Office xx.0 Object Library,
chose qui n'est pas par défaut avant 2007.

--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/

----------------------------------------------------------------------------------

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

Bonjour

Pour ouvrir des fichiers, j'utlise l'objet FileDialog qui fonctionne
depuis 2003.
si elle n'est pas active, il faut ajouter la référence Office au projet.



Tu as raison, cette fonction offre de nombreuses possibilités.
Curieusement elle n'est disponible, sauf erreur de ma part, que dans Word
alors qu'elle est référencée dans "Office".

--
A+




Avatar
Geo
Bonjour

Je viens de faire un essai et sous 2007, on peut l'utiliser avec d'autres applications
de la suite.

Et ça fonctionne aussi sous Excel 2003.

Mais il faut ajouter la référence à Microsoft Office xx.0 Object Library, chose qui
n'est pas par défaut avant 2007.



Tu as raison, ça marche aussi dans PowerPoint.
J'ai du confondre.

--
A+
Avatar
guyguy
Bonjour heureux-oli,

Merci pour ta sugggestion.

Ma macro sert à insérer un fichier à la position du curseur dans le document
en cours et non pas à ouvrir un fichier. Je me demande si ta suggestion est
encore appropriée.

Merci!



"heureux-oli" a écrit dans le message de news:

Salut,

J'ai une autre proposition qui ne change pas l'option de Word.

Mais ça reste une question de goût.

Pour ouvrir des fichiers, j'utlise l'objet FileDialog qui fonctionne
depuis 2003.
si elle n'est pas active, il faut ajouter la référence Office au projet.


'************************************************
Sub OuvrirDoc()
Dim oDlg As FileDialog

Set oDlg = Application.FileDialog(msoFileDialogFilePicker)

With oDlg
.InitialFileName = "C:Temp"
.Show
End With

Debug.Print oDlg.SelectedItems(1)
Set oDlg = Nothing


End Sub
'************************************************



--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/

----------------------------------------------------------------------------------

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

Bonjour Guyguy

Le hasard fait parfois bien les choses. Je m'apprêtais à soumettre le
même problème quand je suis tombé sur le message de Souriane.



Pas banal en effet.
J'aurais plutôt fait :

strNewDir = Options.DefaultFilePath(wdDocumentsPath)
Options.DefaultFilePath(wdDocumentsPath) = "C:Documentation"
Dialogs(wdDialogInsertFile).Show
Options.DefaultFilePath(wdDocumentsPath) = strCurrentDir

Comme ça vous remettez la maison dans l'état où vous l'avez trouvée.

Merci à Geo!



Deux heureux pour le prix d'un(e) on en redemande !

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



--
A+








Avatar
guyguy
Bonjour Geo,

Merci pour la suggestion de modification, qui me paraît pertinente.




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

Bonjour Guyguy

Le hasard fait parfois bien les choses. Je m'apprêtais à soumettre le
même problème quand je suis tombé sur le message de Souriane.



Pas banal en effet.
J'aurais plutôt fait :

strNewDir = Options.DefaultFilePath(wdDocumentsPath)
Options.DefaultFilePath(wdDocumentsPath) = "C:Documentation"
Dialogs(wdDialogInsertFile).Show
Options.DefaultFilePath(wdDocumentsPath) = strCurrentDir

Comme ça vous remettez la maison dans l'état où vous l'avez trouvée.

Merci à Geo!



Deux heureux pour le prix d'un(e) on en redemande !

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



--
A+




1 2