VBA : ChangeFileOpenDirectory ne fonctionne pas bien

Le
Souriane
Bonjour,

Quelqu’un peut-il m’aider avec ce problème d’ouverture de boîte d=
e
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 e=
st
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 _
:=False, AddToRecentFiles:=False, PasswordDocument:="",
PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="",
WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto

Avez-vous des suggestions?

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

Merci!

Guylaine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #19311941
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+
Geo
Le #19313091
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+
guyguy
Le #19313081
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"

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
Geo
Le #19313211
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+
heureux-oli
Le #19313861
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"
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+




Geo
Le #19314951
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+
heureux-oli
Le #19315171
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"
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+




Geo
Le #19316491
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+
guyguy
Le #19318021
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"
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"
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+








guyguy
Le #19318011
Bonjour Geo,

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




"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+




Publicité
Poster une réponse
Anonyme