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

VBA Word Discussion :

Comment extraire les objets OLE contenu dans un paragraphe Word [WD-2010]


Sujet :

VBA Word

  1. #1
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut Comment extraire les objets OLE contenu dans un paragraphe Word
    Bonjour,

    Je précise immédiatement que je ne connais pas grand chose à la programmation avec Word, et encore moins à VBA.

    Cependant, je programme l'analyse d'un document Word en perl à partir des automatismes OLE (module Perl Win32::OLE). On retrouve grosso-modo dans l'interface perl de ce module, le modèle objet de MS-Word (j'utilise la doc en ligne du support Microsoft, mais ce n'est pas simple de trouver des réponses quand on n'a pas de formation sur les concepts de base).

    Je parcours mon document et pour chaque paragraphe, je récupère bien le texte (Paragraph.Range.Text). Mais certains des paragraphes contiennent des objets OLE (des tableaux Excel) et l'extraction du texte du paragraphe n'est alors pas pertinente. Quelle méthode ou propriété de quel objet Word pourrait m'aider à récupérer ce ou ces objet(s) embarqués dans mes paragraphes ?

    Merci d'avance.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    En fait, en analysant plus finement ce que mon programme extrait, je m'aperçois que le contenu des cellules de mes objets Excel contenus dans mes paragraphes Word sont récupéré sous forme de texte (avec un caractère non imprimable à la fin, mais que je peux facilement filtrer).

    Donc je en fait, l'extraction fonctionne correctement.
    Pour information, un extrait de mon programme perl d'extraction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    use strict;
    use warnings;
    use feature qw(:5.14);
     
    use Data::Dumper;
    use Win32::OLE;
    use Win32::OLE::Enum;
     
    my $document = Win32::OLE -> GetObject($ARGV[0])
      or die "can't open: ".($! // $@)."\n";
    my $paragraphs = $document->Paragraphs();
    say "Nb of paragraphs: ", $paragraphs->{Count};
    my $enumerate = new Win32::OLE::Enum($paragraphs);
    while(defined(my $paragraph = $enumerate->Next())) {
      my $text = $paragraph->{Range}->{Text};
      my $style = $paragraph->{Style}->{NameLocal};
      my $list_text = $paragraph->{Range}->{ListFormat}->{ListString};
      # traitement
      # ...
    }
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Comment rechercher les objets non utilisés dans une application
    Par Triton972 dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/12/2011, 05h45
  2. Comment extraire les types des données dans un message SOAP
    Par demcoul dans le forum Services Web
    Réponses: 3
    Dernier message: 19/05/2008, 11h58
  3. Réponses: 9
    Dernier message: 02/08/2007, 17h08
  4. Réponses: 3
    Dernier message: 06/07/2007, 09h17
  5. Réponses: 11
    Dernier message: 08/08/2006, 23h11

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