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

Macros et VBA Excel Discussion :

Macro pour exporter des données sur WORD vers Excel (version 2007) [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 19
    Par défaut Macro pour exporter des données sur WORD vers Excel (version 2007)
    Bonjour a tous,

    Je cherche à créer une macro excel qui me permet d'importer sur une feuille excel des données word sur le format suivant:

    Sur une feuille word, j'ai un Quizz composé de plusieurs questions :

    1) Intitulé de la question 1 ......bla bla bbla.......................
    ........................ (saut de ligne)

    a) Réponse a
    b) Réponse b
    c) Réponse c

    2) Intitulé de la question 2 ......bla bla bbla.......................
    ........................ (saut de ligne)

    a) Réponse a
    b) Réponse b
    c) Réponse c

    Toutes les question sont sur ce format (même si certaines question ont un énoncé de 1 ligne, 2 ligne 3 lignes) et les réponses possibles sont au nombre de 3 ou 4 ...

    La bonne réponse est surlignée en jaune

    L'idée est de créer un tableau excel qui comporte (i) 7 colonnes par exemple :

    Colonne 1 : Intitulé de la question
    Colonne 2 : Réponse a
    Colonne 3 : 1 si réponse a correcte 0 sinon
    Colonne 4 : Réponse b
    Colonne 5: 1 si réponse b correcte 0 sinon
    Colonne 6 : Réponse c
    Colonnes 7: 1 si réponse c correcte 0 sinon

    Et (ii) autant de lignes qu'il y a de questions.

    J'espère que j'ai été assez précis et clair , ça me rendrait vraiment service car il y a quelques dizaines de questions à la suite dans le document word

    Merci bcp pour votre aide par avance

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Regarde cette page :

    http://excel.developpez.com/faq/?page=Word

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 19
    Par défaut
    Bonjour Daniel,

    Merci pour ta réponse c'est un bon début,
    En effet la macro qui est dispo sur ton lien:

    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
    Sub ExportWord()
     
        'necessite d'activer la reference
            '"Microsoft Word xx.x Object Library"
        Dim AppWord As Object
        Dim docWord As Object
        Dim Paragraphe As Object
        Dim i As Integer
     
        Set appWrd = CreateObject("Word.Application")
        appWrd.Visible = True
        Set docWord = appWrd.Documents.Open("C:\Documents and Settings\e.level\Bureau\macro Niko\NCordisco_inclassactivities_session13")
     
        For Each Paragraphe In docWord.Paragraphs
            If Paragraphe.Range.ListFormat.ListValue <> 0 Then
                i = i + 1
                Cells(i, Paragraphe.Range.ListFormat.ListLevelNumber) = _
                    Paragraphe.Range.ListFormat.ListString
                Cells(i, Paragraphe.Range.ListFormat.ListLevelNumber + 1) = _
                    Paragraphe.Range.Sentences(1).Text
            End If
        Next
     
    End Sub
    me permet de copier dans excel ligne après ligne tous les paragraphes
    1)
    a)
    b)
    2)
    a)
    b)
    ....

    Toutefois, je cherche à les disposer dans excel de cette façon là:

    Ligne 1: Colonne 1: Intitulé de la Question 1)
    Ligne 1: Colonne 2: Intitulé Réponse possible a) à la Question 1)
    Ligne 1: Colonne 3: 1 si la Réponse possible a) à la Question 1) est de format "surligné en jaune sinon 0
    Ligne 1: Colonne 4: 1 énoncé de la Réponse possible b) à la Question 1)
    etc...

    Ainsi, à partir du code, je ne sais pas comment disposer correctement les données car je ne sais pas faire de différence dans la macro entre les paragraphes 1), 2) etc... et les sous paragraphes a), b) c) ...

    D'autre part, tous les sauts de lignes dans word apparaissent sous forme d'un point d'interrogation encadré dans le doc excel ...

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Je suis loin d'être un pro dans le pilotage de Word. Est-ce que tu pourrais mettre en pièce jointe un document exemple, sans données confidentielles ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 19
    Par défaut
    Ci joint

    - Un doc word type avec 2 questions par exemple
    - Un doc excel avec:
    sur la première page le résultat de la macro (cf mon post précédent)
    et en feuil2, le résultat que j'aimerai obtenir de façon automatique

    Merci bcp !!
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, il faudrait que ton doc Word comporte des Signets ou au minimum des Champs pour faciliter grandement la chose

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie comme ceci :

    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
    29
    30
    31
    32
    33
    34
    Sub ExportWord()
     
        'necessite d'activer la reference
            '"Microsoft Word xx.x Object Library"
        Dim AppWord As Object
        Dim docWord As Object
        Dim Paragraphe As Object
        Dim i As Integer
     
        Set appWrd = CreateObject("Word.Application")
        appWrd.Visible = True
        'Set docWord = appWrd.Documents.Open("C:\Documents and Settings\e.level\Bureau\macro Niko\Exemple questions")
        Set docWord = appWrd.Documents.Open(ThisWorkbook.Path & "\kroko55 Exemple questions")
        For Each Paragraphe In docWord.Paragraphs
            With Paragraphe.Range.ListFormat
                If .ListValue <> 0 Then
                   If Right(.ListString, 1) = ")" Then
                        i = i + 1
                        col = 1
                        Cells(i, 1) = .ListString & " " & Paragraphe.Range.Text
                    ElseIf Right(.ListString, 1) = "." Then
                        'Cells(i, 2) = Paragraphe.Range.Sentences(1).Text
                        col = col + 1
                        Cells(i, col) = .ListString & " " & Paragraphe.Range.Text
                        If Paragraphe.Range.HighlightColorIndex = 7 Then
                            Cells(i, col).Interior.ColorIndex = 6
                        End If
                    End If
                End If
            End With
        Next
        Set docWord = Nothing
        Set appWrd = Nothing
    End Sub

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir ici ?

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

Discussions similaires

  1. [XL-2010] Macro VBA : Exporter des paramètres pièce CATIA vers Excel
    Par fehmous dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/10/2014, 12h30
  2. [XL-2010] Importer des données de word vers excel
    Par fifex dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/08/2013, 17h36
  3. Réponses: 35
    Dernier message: 11/08/2010, 13h13
  4. Exporter des données d'Access vers Excel.
    Par SunRay dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/09/2009, 10h24
  5. Exporter des données de forms vers excel
    Par stephane1973 dans le forum Forms
    Réponses: 5
    Dernier message: 15/10/2008, 04h26

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