IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

piloter un fichier excel int�grer dans un fichier word


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut piloter un fichier excel int�grer dans un fichier word
    Bonjour

    Je cr�e une application en vb2005Express pour r�aliser mes devis, ces derniers sont en WORD et int�grent des tableaux EXCEL.

    le fichier word cr��, s'appelle Base Devis.doc, et le fichier excel que je colle dans word : essai.xls, ci dessous vous avez le bout de code qui me permet de faire la manip :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim oWord As Object
            Dim oDoc As Object
            oWord = CreateObject("Word.Application")
            oDoc = oWord.documents.open("C:\Base devis.doc")
     
            oDoc.Bookmarks("GR").range.InlineShapes.AddOLEObject(ClassType:="Excel.Sheet.8", FileName:="C:\essai.xls", _
            LinkToFile:=False, DisplayAsIcon:=False)
    Mon soucis est que je n'arrive pas � r�cup�r� l'index de l'InlineShapes ainsi cr�� (il y en a 29 dans le fichier Word), et donc je ne peux pas travailler dessus,
    De la meme maniere, je souhaiterais pouvoir modifier le nombre de lignes visualis�es dans la fen�tre...
    Je ne trouve pas de tutos.. et je seche desesp�r�ment....

    merci pour votre aide !

  2. #2
    R�dacteur/Mod�rateur
    Avatar de Skalp
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par d�faut
    J'imagine que tu as essay� de donner un indice entre 0 et 28 :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    oDoc.Bookmarks("GR").range.InlineShapes(1)
    Sinon, j'ai vu que la fonction AddOLEObject() te renvoie l'objet InlineShape, tu pourrais travailler sur les instances de ces objets, sans avoir � te soucier de l'indice... Bon, c'est s�r, �a fait 29 objets � g�rer, c'est lourd, mais c'est mieux que rien.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Dim oInlineShape As Word.InlineShape
    oInlineShape = oDoc.Bookmarks("GR").Range.InlineShapes.AddOLEObject(...)
    Pour modifier le nombre de lignes visualis�es, tu peux essayer la propri�t� :
    Pour plus d'infos sur le mod�le objet Word, il existe des fichiers d'aide dans ton install Office :
    C:\Program Files\Microsoft Office\OFFICE11\1036
    Le fichier s'intitule VBAWD10.CHM (enfin, pour Office 2003...)

    Ils pourront s�rement t'�tre d'une aide tr�s pr�cieuse !

    Bon courage !

  3. #3
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut

    je teste et je reviens demain, mais grand merci pour t'�tre pench� sur mon probl�me...

  4. #4
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut
    la r�cup�ration de l'objet excel marche parfaitement, merci � toi Skalp...
    Pour info la ligne de prog :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
            Dim oInlineShape As Word.InlineShape
            oInlineShape = CType(oDoc.Bookmarks("GR").range.InlineShapes.AddOLEObject(ClassType:="Excel.Sheet.8", FileName:="C:\essai.xls", _
            LinkToFile:=False, DisplayAsIcon:=False), Word.InlineShape)
    oInlineShape r�cup�re alors toutes les caract�ristiques de l'objet ajouter sauf que... les caract�ristiques de l'objet ne me permettent pas d'entrer dans cet objet, donc la fonction Height redessine la dimension ext�rieure de l'objet pr�sent dans Word, mais je n'arrive toujours pas � ouvrir le fichier excel et � determiner que les cellules visibles seront les cellules Range("A1","C10") par exemple...

    une id�e ???

  5. #5
    R�dacteur/Mod�rateur
    Avatar de Skalp
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par d�faut
    Tu peux faire �a sous Word ?
    Tu fais comment ?

  6. #6
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut
    Ben... le programmer sous Word, si je savais le faire .....

    Pour le faire manuellement c simple, tu ins�res une table excel dans word, tu double click sur celle-ci, puis tu prends le bas de ta fen�tre et tu montes ou descends... et la tu determines la partie du tableau Excel qui est visible... c'est �a que je veux faire

    La fonction Height joue sur l'objet, cad qu'elle prend l'image apparaissant du fichier excel et la r�duit ou l'augmente, concretement dans Word, tu click 1 fois sur le tableau, m�me proc�dure que pr�c�demment, et tu zoom l'objet.

  7. #7
    R�dacteur/Mod�rateur
    Avatar de Skalp
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par d�faut
    Effectivement, Height fait jouer le zoom de l'objet.

    En fait, dans Word, quand tu cliques sur l'objet, Excel est d�marr� (tu peux le voir dans le gestionnaire des t�ches) et tu utilises Excel ! ... �a veut dire qu'il te faudrait piloter Excel... en pilotant Word !

    Regardes ce que tu peux faire en VBA � partir de Word (en utilisant Word manuellement) et essaye, soit d'adapter le code VBA dans ton programme, soit de coder une macro que tu ex�cuterais en pilotant Word...

    Bon courage...

    Tiens-nous au courant !

  8. #8
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut
    Salut Skalp

    J'ai malheureusement deja essay� le lancement de enregistreur macro dans word pour voir le code r�sultant : l'enregistreur s'arrete d�s que je touche � l'objet et n'enregistre plus rien !!!

    Je r�ussi � activer la feuille excel dans Word gr�ce au lignes qui suivent :

    With oInlineShape.OLEFormat
    .ActivateAs(ClassType:="Excel.Sheet")
    .Activate()
    End With

    Mais je ne parviens pas � trouver la solution pour toucher � la fen�tre.... c d�sesp�rant....

    Je garde le moral !!!!

  9. #9
    R�dacteur/Mod�rateur
    Avatar de Skalp
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par d�faut
    Citation Envoy� par Manu91 Voir le message
    J'ai malheureusement deja essay� le lancement de enregistreur macro dans word pour voir le code r�sultant : l'enregistreur s'arrete d�s que je touche � l'objet et n'enregistre plus rien !!!
    Ah-aaah ! Je vois que tu connais les astuces du pilotage Office
    J'ai eu le r�sultat que toi : on ne peut pas acc�der � l'objet pendant l'enregistrement d'une macro

    Mais ce n'est pas ce que je voulais dire dans mon pr�c�dent post. Je te proposais de faire �a en VBA, sans passer par l'enregistrement de macro, mais en codant la macro directement Je te dis �a car je sais qu'il est possible de piloter d'autres applications office en VBA FAQ VBA

  10. #10
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut
    Je suis sur la piste depuis hier soir.... je me met � la programmation VBA de Word... vais finir par en faire mon m�tier si �a continue comme �a !!!

    mais meme en VBA je ne trouve pas la mani�re de changer la taille de cette de fen�tre !!!

    Je continue... mais j'ai du mal !!!

    sign� : l'�cumeur de tutos et de posts !!!!!

  11. #11
    Membre averti
    Profil pro
    president
    Inscrit en
    Ao�t 2007
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : president

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 14
    Par d�faut
    Bonjour en ce beau Dimanche... lol

    Serieusement, mon probl�me est... hardu...
    le VBA de Word ne donne rien, en effet pour changer la taille de la partie visible de la fenetre, tu dois rentrer dans Excel.
    Quand tu rentres dans excel, et change la taille, tu peux remarquer qu'elle saute de ligne en ligne (donc c pas une fonction height... la v�rit� est ailleurs...)
    Toujours quand tu changes cette taille, tu t'apper�ois que la case nom reprend la dimension da la partie visible (comme si elle �tait s�lectionn�e)

    Question : est ce que la modification ne se ferait pas par une API non document�e ? (en tous les cas pas document�e chez moi !)

    Le c�t� sombre de la Force nous emportera tous !!!!

Discussions similaires

  1. Encodage de donn�es dans un fichier Excel � partir d'un fichier plat
    Par edouard.danaradjou dans le forum G�n�ral Python
    R�ponses: 9
    Dernier message: 27/01/2015, 11h38
  2. [D�butant] Boutons parcourir dans un fichier excel importer dans une datagridview
    Par tayari dans le forum VB.NET
    R�ponses: 6
    Dernier message: 31/12/2014, 17h17
  3. [XL-2010] Copie d'onglets Excel 2010 dans un fichier Excel 95
    Par pedro91 dans le forum Excel
    R�ponses: 2
    Dernier message: 29/07/2014, 19h57
  4. Lire fichier excel + sortie dans un fichier
    Par identifiant_bidon dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 11/07/2014, 13h26
  5. R�ponses: 4
    Dernier message: 24/02/2009, 23h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo