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 :

Demande aide extraction données formulaire Word dans Excel VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut Demande aide extraction données formulaire Word dans Excel VBA
    Bonjour,

    La question a peut-être déjà été posé mais après de multiples recherche je n'ai rien trouvé pour m'aider.

    J'ai un document Word avec des cases à cocher.
    Je souhaiterais dans un tableau excel afficher la valeur Vrai si la case à cocher est cochée et la valeur Faux si la case à cocher n'est pas cochée.

    Jusque là j'ai réussi à faire un code qui ouvre le fichier Word et qui indique dans la cellule A1 de mon fichier Excel Vrai ou Faux si la CheckBox1 est cochée ou pas.
    Ma problématique est qu'il n'y a pas qu'une seule case à cocher mais plusieurs, toutes numérotées de 1 à 52 : CheckBox1, CheckBox2, ..., CheckBox52.
    Je dois donc faire une boucle pour que le code lise l'ensemble des cases à cocher et qu'il indique dans les cellules A1, A2,..., A52 Vrai ou Faux en fonction des cases cochées ou non.


    Ci-dessous mon code qui fonctionne pour la CheckBox1 et ma cellule A1 :

    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
     Sub Test_Recuperer_donnees_Word()
    ' Je déclare mes variables
    Dim strFichier As String
    Dim objWord As Object
    Dim i As Integer
    Dim j As Integer
    j = 1
    i = 1
     
    ' J'ouvre mon ficher Word 
    Set objWord = CreateObject("Word.Application")
    strFichier = "P:\Documents\Test.docx"
    objWord.Documents.Open Filename:=strFichier
    ' Je rends mon Word visible
    objWord.Visible = True
     
     
    ' Je fais ma condition pour indiquer Vrai ou Faux en fonction de la valeur de la case à cocher
    If objWord.ActiveDocument.CheckBox1.Value = True Then
    Cells(i, j).Value = "Vrai"
    Else: Cells(i, j).Value = "Faux"
    End If
     
    ' Je ferme mon fichier Word
    objWord.Quit
    Set objWord = Nothing
     
     
    End Sub
    J'espère que je suis claire.
    Je vous remercie d'avance pour votre aide.

    Cordialement,

    Lucieferine

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    J'ai trouvé et adapté ceci qui parcourt toutes les checkboxs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub GetCheckBoxes()
        Dim ctrl As Word.ContentControl
        For Each ctrl In ActiveDocument.ContentControls
                If ctrl.Type = wdContentControlCheckBox Then
                    'C'est une checkbox, la traiter
                End If
        Next ctrl
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut
    Bonjour marot_r, Merci pour cette réponse, j'ai essayé de l'intégrer à mon code mais j'ai une erreur qui s'affiche :
    Erreur compilation Type défini par l'utilisateur non défini
    et il me surligne la ligne Dim ctrl As Word.ContentControl.

    Ci-dessous mon code modifié, est-ce que je l'ai mal intégré ?

    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
    35
    36
      Sub Test_Recuperer_donnees_Word()
    ' Je déclare mes variables
    Dim strFichier As String
    Dim objWord As Object
    Dim i As Integer
    Dim j As Integer
    j = 1
    i = 1
     
    ' J'ouvre mon ficher Word 
    Set objWord = CreateObject("Word.Application")
    strFichier = "P:\Documents\Test.docx"
    objWord.Documents.Open Filename:=strFichier
    ' Je rends mon Word visible
    objWord.Visible = True
     
     
    ' Je fais ma condition pour indiquer Vrai ou Faux en fonction de la valeur de la case à cocher
    Dim ctrl As Word.ContentControl
        For Each ctrl In ActiveDocument.ContentControls
                If ctrl.Type = wdContentControlCheckBox Then
                    'C'est une checkbox, la traiter
                    If objWord.ActiveDocument.wdContentControls.Value = True Then
                        Cells(i, j).Value = "Vrai"
                    Else: Cells(i, j).Value = "Faux"
                    End If
                End If
        i = 1 + 1
        Next ctrl
     
    ' Je ferme mon fichier Word
    objWord.Quit
    Set objWord = Nothing
     
     
    End Sub

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Non, probablement pas.

    Ce code suppose que tu as une références sur Word et c'est pour cela qu'il crie.

    Remplace as Word.ContentControl par as Object.
    Tu vas perdre l'IntelliSense pour cet objet mais cela devait résoudre le problème.
    Note que quand on défini as Object, le compilateur ne fait plus de vérification donc faire bien attention à l'orthographe des méthodes et propriétés.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut Réponse
    J'ai fais la modif mais maintenant il me met une autre erreur et cette fois-ci sur la ligne d'après :

    Message erreur :
    Erreur d'execution 424
    Objet requis
    Ligne concernée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctrl In ActiveDocument.ContentControls
    Merci,

    A+

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si le programme est écrit dans Excel, il est normal qu'il ne reconnaisse pas l'objet ActiveDocument

    Voici un petit exemple rapide de l'ouverture d'un nouveau document Word
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TestWord()
      Dim appWrd As Object
      Dim wrdDoc As Object
      Set appWrd = CreateObject("Word.Application")
      '
      With appWrd: .Visible = True: .Activate: End With
      Set wrdDoc = appWrd.Documents.Add
      '
      Set appWrd = Nothing: Set wrdDoc = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Remontée champs formulaire word dans excel
    Par Kestion100 dans le forum Word
    Réponses: 43
    Dernier message: 12/10/2017, 14h16
  2. [Toutes versions] Automatiser extraction données pdf/word vers Excel
    Par adevy dans le forum Excel
    Réponses: 6
    Dernier message: 07/07/2014, 09h15
  3. [XL-2010] Extraction données formulaire Word via VBA Excel
    Par jojoSuperFripouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/04/2013, 17h18
  4. Réponses: 27
    Dernier message: 20/01/2010, 11h39
  5. [XL-2003] Exporter résultats cases à cocher formulaire word dans excel
    Par macat dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/12/2009, 15h54

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