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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

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. 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