ouvrir une feuille de calcul dans word

P

peper-eliot

Guest
Bonjour à tous.

Je souhaite automatiser l'ouverture d'un classeur sous Word. J'utilise cette ligne de commande :

ChangeFileOpenDirectory "F:\Dossier A\"
Documents.Open FileName:="Classeur1.xls", ConfirmConversions:=True

Le fait de passer la valeur de ConfirmConversion à False évite de voir la première boite de dialogue demandant confirmation du type de fichier à convertir.
Jusque là, rien de très compliqué, le code pouvant être récupéré par l'enregistreur de macro.

Toutefois, il reste une DEUXIEME boite de dialogue du type :

========================
Ouvrir une feuille de calcul
========================
Ouvrir le document du classeur :
|Classeur
|feuil1
|feuil2
|...

Et là, en pauvre amateur que je suis, je sèche. Je n'est pas trouvé la propriété applicable pour gérer les options de cette boite de dialogue.

Merci d'avance pour vos réponses et, si possible, indiquez-moi en même temps la façon dont l'on pouvait trouver la réponse dans l'aide de VBA Word.
 
P

peper-eliot

Guest
Bonjour à tous.
Je me permet de faire remonter ma question.
En fait, le but est de récupérer les données des feuilles Xl dans un .doc.
La commande de code correspond à l'action INSERTION/FICHIER sous Wd
Elle à pour résultat de créer autant de tableaux que de feuilles.
Ces tableaux sont séparés par un ^P et sont référencés Table(1) Tables(2)... dans VBWd. Ils se limitent uniquement au données entrées (par ex: données en B10:D15 donne tableau de 6lignes / 3 colonnes) et sont considérés comme des tableaux crées à partir de Wd.

Je signale au passage qu'il m'a été suggéré, pour gérer des données Xl depuis VBWd, d'implanter la référence :
'Microsoft Excel 10.0 Object Library'
pour pouvoir contrôler Excel depuis Word.
Toutefois, cette option appele de ma part la question suivante :
ET SI l'application hôte n'a pas implanté cette référence, le code fonctionnera-t-il ?

Quand à ma 2ème boite de dialogue mentionnée dans ma question initiale... je n'est pas encore trouvé comment la gérer depuis VBWd

Merci d'avance pour votre aide
 
W

wally

Guest
Bonjour peper-eliot et le forum,

Essaye ceci :

Sub Main()

Dim oXlApp As Object 'Excel.Application
Dim oXlWbk As Object 'Excel.Workbook
Dim oXlWsh As Object 'Excel.Worksheet

'Lancer une instance Excel
Set oXlApp = CreateObject("Excel.Application")

'Ouvrir le classeur Excel en lecture seule
Set oXlWbk = oXlApp.Workbooks.Open("C:\MonChemin\MonClasseur.xls", , True)

'Parcourir les feuilles du classeur Excel
For Each oXlWsh In oXlWbk.Worksheets
'Insérer les feuilles Excel dans le document Word actif
Selection.InsertFile FileName:=oXlWbk.FullName, Range:=oXlWsh.Name & "!", ConfirmConversions:=False
Next oXlWsh

'Fermer le classeur Excel
oXlWbk.Close

'Quitter Excel
oXlApp.Quit

'Libérer les ressources
Set oXlWsh = Nothing
Set oXlWbk = Nothing
Set oXlApp = Nothing

End Sub

Pour cet exemple, il n'est pas nécessaire d'ajouter la référence "Microsoft Excel X.0 Object Library".


Slts

wally
 
P

peper-eliot

Guest
Et bien je profite d’un petit moment de répit pour renouveler mes remerciements

Par la même occasion, je souhaiterai savoir pourquoi les instructions suivantes sont nécessaires

'Fermer le classeur Excel
oXlWbk.Close
'Quitter Excel
oXlApp.Quit

En effet, lorsque je lance cette macro, le classeur ne s’ouvre pas à l’écran.
Je suppose donc que tout ce passe en mémoire et je comprend que je dois vider le contenu de ces objets avec l’instruction NOTHING

Suis-je dans le vrai ? Y aurait-il quelqu’un pour m’en apprendre plus sur l’automation et les liens OLE ?
 

Discussions similaires

Réponses
15
Affichages
878
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 698
dernier inscrit
miespetico