Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2011, 13h52   #1
Invité de passage
 
Inscription : juin 2009
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 21
Points : 4
Points : 4
Par défaut Ouvrir document word depuis excel avec boite de dialogue

Bonjour,

Je souhaite ouvrir un document word depuis une macro excel.
J'ai réussi en pointant un fichier directement, mais je n'y arrive pas en voulant ouvrir une boite de dialogue pour choisir le fichier à ouvrir.

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
    Dim waza As Object
    Set waza = CreateObject("Word.Application")
    Sheets("Feuil1").ChartObjects("Graphique 6").Activate
    ActiveChart.Parent.Height = 220
    ActiveChart.Parent.Width = 500
    ActiveChart.ChartArea.Copy
    waza.ChangeFileOpenDirectory ThisWorkbook.Path
    waza.FileDialog (msoFileDialogFilePicker)
    waza.Visible = True
    waza.Selection.Goto , , , "graphique"
    waza.Selection.PasteAndFormat (wdChartLinked)
    waza.Visible = True
la ligne en gras ne marche bien entendu pas

merci à tous
gtkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 13h58   #2
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
Je pense qu'il faut instancier un objet FileDialog pour que cela fonctionne:

Code :
1
2
3
 
Dim fldTest As Word.Application.FileDialog
Set fldtest = waza.FileDialog (msoFileDialogFilePicker)
Mais si tu veux juste récupérer le nom du fichier à ouvrir, il y a une méthode pour cela:

Code :
1
2
 
waza.GetOpenFileName()
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h46   #3
Invité de passage
 
Inscription : juin 2009
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 21
Points : 4
Points : 4
Merci de ta réponse,

cependant, la première ligne me met une erreur de compilation,

et le getopenfilename me renvoie une erreur 438 :
"propriété ou méthode non gérée par cet objet" car il me semble que word ne le gère pas
gtkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 16h09   #4
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
Bonjour,
Un petit coup d’œil sur ce document
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h11   #5
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
Citation:
Envoyé par gtkill Voir le message
Merci de ta réponse,

cependant, la première ligne me met une erreur de compilation,

et le getopenfilename me renvoie une erreur 438 :
"propriété ou méthode non gérée par cet objet" car il me semble que word ne le gère pas
Et ce n'est pas étonnant...VBA permet d'utiliser des objets/variables faiblement typés mais c'est dangereux. Pour ton problème voilà quelque chose de plus propre:

Code :
1
2
3
4
5
 
Dim wdApp As Word.Application, wdDoc As Word.Document
 
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents.Open(FileName:=strPath, Visible:=True)
Où est strPath est une variable de type string contenant le chemin du fichier à ouvrir.

Pour récupérer ce chemin, cf. le lien que t'as donné corona!
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h31   #6
Invité de passage
 
Inscription : juin 2009
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 21
Points : 4
Points : 4
merci, j'ai trouvé grâce à ton lien,

au final voici le code pour juste ouvrir le document word depuis excel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Dim waza As Object
    Set waza = CreateObject("Word.Application")
    waza.Visible = True
    Dim dlg As FileDialog
    Dim strPath As String
    Set dlg = waza.FileDialog(msoFileDialogFilePicker)
    With dlg
    .InitialFileName = "C:\temp\"
    .AllowMultiSelect = False
    .Title = "www.developpez.com"
    .Show
    End With
    strPath = dlg.SelectedItems(1)
    waza.Documents.Open strPath
gtkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h50   #7
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
Citation:
Envoyé par gtkill Voir le message
merci, j'ai trouvé grâce à ton lien,

au final voici le code pour juste ouvrir le document word depuis excel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Dim waza As Object
    Set waza = CreateObject("Word.Application")
    waza.Visible = True
    Dim dlg As FileDialog
    Dim strPath As String
    Set dlg = waza.FileDialog(msoFileDialogFilePicker)
    With dlg
    .InitialFileName = "C:\temp\"
    .AllowMultiSelect = False
    .Title = "www.developpez.com"
    .Show
    End With
    strPath = dlg.SelectedItems(1)
    waza.Documents.Open strPath

Oui ça permet d'ouvrir ton document. Fais tout de même attention que ton objet waza est l'application Word et pas le document que tu as ouvert au sein de l'application.

Donc si tu veux après accéder à ton document tu sera obligé de passer par la collection Documents de ton objet waza.

Pour accéder directement au document, cf. mon post précédent.
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h41.


 
 
 
 
Partenaires

Hébergement Web