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 :

Macro Excel pour extraire des données dans un fichier Word


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Macro Excel pour extraire des données dans un fichier Word
    Bonjour à tous,

    J'ai un gros fichier Word qui contient des lignes suivantes

    ***********************************
    exi_i ; exi_amont1, exi_amont2,..., exi_amontN

    - contenu exi_i

    fexi
    ***********************************


    J'écrit un macro Excel qui extrait dans une autre fichier Excel composée de deux onglets


    Onglet 1 : 2 colonnes
    --------------------
    exi_1 | contenu exi_1
    ...
    exi_i | contenu exi_i
    ...
    exi_M | contenu exi_M
    --------------------


    Onglet 2 : 2 colonnes
    --------------------
    ...
    exi_i | exi_amont1
    exi_i | exi_amont2
    ...
    exi_i | exi_amontN
    ...
    --------------------

    Quelqu'un pourrai me proposer une solution ?

    Merci bcp.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est quoi la question

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    C'est quoi la question
    Une proposition d'algorithme qui permet de scanner le fichier Word, et extraire le paragraphe qui suis un mot-clé dans une cellule Excel. Voilà.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    C'est quoi la question
    Pour être plus clair, d'abord merci Oli pour la réponse rapide.

    Ma question était de savoir si quelqu'un a un morceau de code à proposer pour résoudre rapidement mon problème d'extraction vers un fichier Excel des données provenant d'un document Word.

    Les données à extraire du document Word est une liste des exigences ; leurs contenus et leurs exigences filles. La mère est séparée de leurs filles par un ";" et les deux filles se séparent par un ","

    Merci.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Copier une chaîne entière, une partie du paragraphe et plusieurs paragraphes
    Bonjour à tous,

    Mon document Word contient des exigences de type

    ***************************************
    Exi_CodeProjet_CodeExi ; Fille1, Fille2,...

    para1 : faire tâche 1
    ...
    para2 : faire tâche 2
    ...

    Fin_Exi
    ***************************************

    Je voudrais copier ces exigences dans un tableau de trois colonnes

    | Exi_CodeProjet_CodeExi | toutes ses filles | son contenu |

    mais je ne sais pas comment :

    -- copier l'identifiant complet de l'exigence mère (la chaîne avant le ";")
    [j'arrive à copier Exi_CodeProjet mais pas la chaîne entière]

    -- copier la liste de tous les exigences filles (positionner le curseur à la fin du ";" puis copier le reste du paragraphe)
    [j'arrive à copier tout le paragraphe, mais y compris l'exigence mère]

    -- copier le contenu de l'exigence mère, (potisionner le curseur au début du deuxième paragraphe et avant le fin_exi puis copier tous les paragraphes entre les deux position)
    [j'arrive à copier le premier paragraphe mais pas tous les paragraphes jusqu'à
    Fin_Exi]

    Pour bien montrer là où je suis bloqué, voici mon code
    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
    22
    23
    24
    25
    26
    27
    28
     
    ExiTrouvee = AppWord.Selection.Find.Execute(Exi_CodeProjet)
     
        While ExiTrouvee
     
            NbExi = NbExi + 1
     
            'je veux copier la chaîne entière avant le ";"
            Call AppWord.Selection.MoveRight(wdCharacter, 2, wdExtend)
            AppWord.ActiveDocument.Bookmarks(";").Select
            MsgBox (AppWord.Selection.Text)
            WksExcel.Cells(NbExi + 1, 1) = AppWord.Selection.Text
     
            'je veuxs copier toutes les exigences filles
            'à partir du ";" jusqu'à la fin du paragraphe courant
            AppWord.Selection.Paragraphs(1).Range.Select
            AppWord.Selection.Copy
            WksExcel.Cells(NbExi + 1, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone
            AppWord.Selection.MoveRight , Extend:=0
     
            'je veux copier jusqu'à Fin_Exi
            AppWord.Selection.Paragraphs(1).Range.Select
            AppWord.Selection.Copy
            WksExcel.Cells(NbExi + 1, 2).PasteSpecial Paste:=xlValues, Operation:=xlNone
            AppWord.Selection.MoveRight , Extend:=0
     
            ExiTrouvee = AppWord.Selection.Find.Execute(Exi_CodeProjet)
        Wend
    Les experts ici peuvent-ils m'aider.

    Merci.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Copier une chaîne, une partie du paragraphe et une plage à plusieurs paragraphes
    Bonjour à tous et mes excuses pour les déplacement et délestage du dernier thread.

    J'ai lutter avec un problème suivant :

    Mon document Word contient des exigences de type

    ***************************************
    Exi_CodeProjet_CodeExi ; Fille1, Fille2,...

    para1 : faire tâche 1
    ...
    para2 : faire tâche 2
    ...

    Fin_Exi
    ***************************************

    Je voudrais copier ces exigences dans un tableau de trois colonnes

    | Exi_CodeProjet_CodeExi | toutes ses filles | son contenu |

    mais je ne sais pas comment :

    -- copier l'identifiant complet de l'exigence mère (la chaîne avant le ";")
    [j'arrive à copier Exi_CodeProjet mais pas la chaîne entière]

    -- copier la liste de tous les exigences filles (positionner le curseur à la fin du ";" puis copier le reste du paragraphe)
    [j'arrive à copier tout le paragraphe, mais y compris l'exigence mère]

    -- copier le contenu de l'exigence mère, (potisionner le curseur au début du deuxième paragraphe et avant le fin_exi puis copier tous les paragraphes entre les deux position)
    [j'arrive à copier le premier paragraphe mais pas tous les paragraphes jusqu'à
    Fin_Exi]

    Pour bien montrer là où je suis bloqué, voici mon code
    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
    22
    23
    24
    25
    26
    27
    28
     
    ExiTrouvee = AppWord.Selection.Find.Execute(Exi_CodeProjet)
     
        While ExiTrouvee
     
            NbExi = NbExi + 1
     
            'je veux copier la chaîne entière avant le ";"
            Call AppWord.Selection.MoveRight(wdCharacter, 2, wdExtend)
            AppWord.ActiveDocument.Bookmarks(";").Select
            MsgBox (AppWord.Selection.Text)
            WksExcel.Cells(NbExi + 1, 1) = AppWord.Selection.Text
     
            'je veuxs copier toutes les exigences filles
            'à partir du ";" jusqu'à la fin du paragraphe courant
            AppWord.Selection.Paragraphs(1).Range.Select
            AppWord.Selection.Copy
            WksExcel.Cells(NbExi + 1, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone
            AppWord.Selection.MoveRight , Extend:=0
     
            'je veux copier jusqu'à Fin_Exi
            AppWord.Selection.Paragraphs(1).Range.Select
            AppWord.Selection.Copy
            WksExcel.Cells(NbExi + 1, 2).PasteSpecial Paste:=xlValues, Operation:=xlNone
            AppWord.Selection.MoveRight , Extend:=0
     
            ExiTrouvee = AppWord.Selection.Find.Execute(Exi_CodeProjet)
        Wend
    Les experts ici peuvent-ils m'aider.

    Merci.

Discussions similaires

  1. [MySQL] Comment extraire des données dans un fichier .svc depuis une page web
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/12/2013, 12h02
  2. Réponses: 1
    Dernier message: 01/08/2013, 18h23
  3. Extraire des données dans un fichier
    Par kali38 dans le forum Général Python
    Réponses: 4
    Dernier message: 31/01/2011, 13h51
  4. Réponses: 4
    Dernier message: 14/05/2007, 10h50
  5. Extraire des données dans un fichier .csv
    Par orj30754 dans le forum C
    Réponses: 7
    Dernier message: 03/11/2006, 14h48

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