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 des infos d'un fichier Word ?


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Comment extraire des infos d'un fichier Word ?
    Bonjour,
    J'ai cherché des éléments de réponse à ma question dans la FAQ, mais je n'y ai rien trouvé... Bizarre, car j'imagine que je ne suis pas le seul à vouloir faire ce que je vais vous exposer ici :

    J'ai un groupe de N fichiers Word dont je souhaite extraire certaines informations - que j'y repérerai à l'aide de balises - pour pouvoir ensuite les écrire dans un fichier résultat que j'ouvrirai ensuite sous Excel pour pouvoir en sortir des statistiques.

    En fait, il s'agit de faire en VB ce qu'un grep d'un côté (pour l'extraction) et les sed et awk de l'autre (pour la manipulation de chaînes) font dans le shell Unix.

    Quelqu'un saurait m'expliquer comment faire ça ?
    Merci d'avance.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    En VBA, ceci te permet déjà de retrouver ta balise "<" par exemple, puis de sélectionner la ligne où elle se trouve

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Selection.HomeKey Unit:=wdStory
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "<"
            .Forward = True
            .Wrap = wdFindContinue
        End With
        Selection.Find.Execute
        Selection.HomeKey Unit:=wdLine
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Tu dis ce qu'il te manque

    A+

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ensuite, j'ai ça qui dort, passé par SilkyRoad sur le forum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Ouvrir un document Word existant à partir d'Excel
    '**************************************
    Sub ouvrirDocWordExistant()
    'necesite d'activer la reference Microsoft Word xx.x Object Library
    Dim appWrd As Word.Application
    Dim DocWord As Word.Document
    Set appWrd = CreateObject("Word.Application")
    appWrd.Visible = True
    Set DocWord = appWrd.Documents. _
    Open("C:\mes documents\monDocument.doc", ReadOnly:=True)
    End Sub
    'Créer un nouveau document Word à partir d'Excel
    '*****************************************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ouvrirNouveauDocWord()
    'necesite d'activer la reference Microsoft Word xx.x Object Library
    Dim appWrd As Word.Application
    Dim docWrd As Word.Document
    Set appWrd = CreateObject("Word.Application")
    appWrd.Visible = True
    Set docWrd = appWrd.Documents.Add
    docWrd.SaveAs "C:\monDocument.doc"
    End Sub
    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
    'Compter le nombre de pages d'un document Word
    '******************************************
    Sub compterNombrePagesDocWord()
    Dim WrdApp As Object, WrdDoc As Object
    Dim nbPage As Byte
    Dim Ouvrir As String
    Ouvrir = Application.GetOpenFilename("Fichiers Word (*.doc), *.doc")
    Set WrdApp = CreateObject("Word.Application")
    Set WrdDoc = WrdApp.Documents.Open(Ouvrir)
    WrdDoc.Bookmarks("\endofdoc").Select
    With WrdDoc
    nbPage = .BuiltinDocumentProperties("Number of Pages")
    MsgBox "Il y a " & nbPage & " page(s) dans le document Word : " & Chr(10) & Ouvrir
    .Close
    End With
    WrdApp.Quit
    Set WrdDoc = Nothing
    Set WrdApp = Nothing
    End Sub
    Ce devrait être voisin sur VB mais je pense que tu devrais trouver ton bonheur sur la FAC. Il y a au moins la syntaxe pour Excel.

    A+

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci.
    Mon problème, étant novice, c'est que j'ai du mal à voir comment utiliser cette macro à partir d'une IHM (exécution consécutive au clic sur un bouton), et comment l'appliquer à tous les *.doc d'un même dossier...

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Déjà, pour lancer la macro depuis le click du bouton, regarde à "Call"
    Pour le reste, il y aura bien un spécialiste VB qui passera par là...

    Bonne chance

    A+

Discussions similaires

  1. Réponses: 8
    Dernier message: 31/10/2007, 09h10
  2. Comment extraire le contenue d'un fichier Word
    Par didi2005 dans le forum C#
    Réponses: 1
    Dernier message: 26/09/2007, 16h49
  3. Comment extraire des infos de Active Directory ?
    Par bartez63 dans le forum Linux
    Réponses: 4
    Dernier message: 31/07/2007, 18h31
  4. Réponses: 2
    Dernier message: 20/10/2006, 10h49
  5. Réponses: 4
    Dernier message: 11/05/2006, 14h41

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