Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2954 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]Créer une instance Excel à partir de Word 97 ou 2003

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]Créer une instance Excel à partir de Word 97 ou 2003

n°1318399
TAM136
Posté le 04-03-2006 à 13:08:29  profilanswer
 

Bonjour à tout le monde.
 
Je suis dans un fichier Word et sous VBA, je cherche à importer automatiquement un tableau Excel que je dois modifier avant l'exportation vers Word. Je ne suis pas un grand connaisseur mais je pense qu'il faut cocher la case Mircosoft Excel Object Library (Outils/Réréreneces) afin de créer une instance Excel.
 
J'ai aplliqué le code suivant:
Sub Macro()
 Dim xls As Excel.Workbook ' déclaration d'une variable objet de type classeur Excel
 Dim var As Integer
 Set xls = GetObject("non de mon fichier.xls" ) 'instanciation de l'objet (qui devient ici le fichier excel indiqué)
 ' import de données
var = xls.worksheets(1).Range("C2" ).Value
End Sub
 
J'ai lancé ma macro, j'ai vu mon curseur se transformer en sablier (signe qu'une actionn était en cours?) et ma page est resté blanche. J'ai fermé mon fichier Word, je l'ai ouvert et j'ai à nouveau lancé ma macro et j'ai le message d'erreur suivant:
Erreur d'exécution suivie d'une série de chiffres
Erreur Automation
syntaxe Incorrecte
Par ailleurs Set xls = GetObject("non de mon fichier.xls" ) 'instanciation de l'objet (qui devient ici le fichier excel indiqué) est surligné en jaune.
 
Pouvez m-indiquer ce qui ne va pas dans mon code s'il vous plaît?
Merci par avance de votre aide.


Message édité par TAM136 le 19-03-2006 à 16:49:31
mood
Publicité
Posté le 04-03-2006 à 13:08:29  profilanswer
 

n°1318518
Epena
Posté le 04-03-2006 à 18:54:48  profilanswer
 

Bonjour,
Effectivement, il faut bien ajouter la référence excel dans le projet Word ( Microsoft Excel X.0 Object Library), X = 8 à 11. Il faut créer une instance excel avant d'ouvrir le fichier, ne pas oublier d'enregistrer le fichier avant de le fermer et enfin décharger les variables. Cela donne par exemple:
 
Sub Macro()
Dim xlAppList As Excel.Application
Dim xls As Excel.Workbook
    ExcelFile = "c:\nom de mon fichier.xls"    'Ne pas oublier le chemin
    Set xlAppList = CreateObject("Excel.Application" ) 'crée une instance excel
    Set xls = xlAppList.Workbooks.Open(ExcelFile, 0, , , "" )  'ouvre ce fichier excel
    Var = xls.Worksheets(1).Range("C2" ).Value
 
        'Routine de lecture et de modification
 
       'penser à refermer le classeur en l'enregistrant si il a été modifié
    xls.Close savechanges:=True
    Set xlAppList = Nothing
    Set xls = Nothing
End Sub
 
Bon courage
Epéna

n°1318595
TAM136
Posté le 04-03-2006 à 21:24:13  profilanswer
 

Bonsoir,
 
Merci beaucoup pour ta réponse et pour la peine.
A priori, je n'ai plus de message d'erreur. Je cherche maintenant à compléter ma macro.

n°1318732
TAM136
Posté le 04-03-2006 à 23:27:26  profilanswer
 

Bonsoir,
Je suis désolé mais comment savoir si mon fichier Excel s'ouvre bien? En effet pour l'instant, lorsque je lance la macro, tout comme avant de poster mon premier message, j'ai le curseur qui se transforme en sablier et mon cuseur apparaît à nouveau sans que j'ai pu voir mon fichier Excel. Je reste donc sur ma page Word initiale.
Est-ce dû à l'instruction xls.Close savechanges:=True ? J'essaie de compléter ma macro pour avoir la confirmation que mon instance fonctionne bien et surtout parce je souhaite justement modifier ce fichier Excel avant l'exportation dans Word mais pour l'instant je n'y arrive pas.
Un conseil peut-être?
 
Merci

n°1319119
Epena
Posté le 05-03-2006 à 20:53:36  profilanswer
 

Bonsoir,
C'est toutà fait sûr que le fichier excel s'ouvre, à tel point que si on oublie le code pour le fermer et si on veut l'ouvrir par excel, apparaît un message d'ouverture en lecture seule. Par contre si tu souhaites ouvrir et afficher le fichier excel, il faut modifier le code :
 
Sub Macro()
Dim xlAppList As Excel.Application
Dim xls As Excel.Workbook
Dim ExcelFile
    ExcelFile = "c:\nom de mon fichier.xls"    'Ne pas oublier le chemin
    On Error Resume Next
    Set xlAppList = GetObject(ExcelFile, "Excel.Application" )
    If xlAppList Is Nothing Then
      Set xlAppList = CreateObject("Excel.Application" ) 'crée une instance excel si n'est pas ouvert
    End If
    On Error GoTo 0
    xlAppList.Visible = True    'rend visible l'application
   
    Set xls = xlAppList.Workbooks.Open(ExcelFile)  'ouvrre ce fichier excel
    xls.Activate    'active le classeur
 
    Var = xls.Worksheets(1).Range("C2" ).Value
 
    'Routine de lecture et de modification
End Sub
 
Bon courage
Epéna

n°1321033
TAM136
Posté le 08-03-2006 à 16:01:45  profilanswer
 

Bonsoir,
 
YES!! Impeccable! Merci encore (ça fait plusieiurs fois que tu viens à mon secours).
 
@+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]Créer une instance Excel à partir de Word 97 ou 2003

 

Sujets relatifs
quel soft utiliser pour creer un site web sans savoir programmer??creer requete pour inserer des valeurs dans ACCESS
[Newb] créer un bouton parcourir...[resolu] pas de rép alors...
[resolu]organisation bddEmpêcher de fermer une UserForm sous VBA (Excel)
[resolu] Convertir un entier en chaine représentant sa valeur hexa[resolu] erreur WARNING
Fonction RechercheV sous VB Excel[resolu]condition dans une boucle
Plus de sujets relatifs à : [RESOLU]Créer une instance Excel à partir de Word 97 ou 2003


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR