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 :

Enregistrement des données d'un formulaire Word dans un fichier Excel [WD-2007]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut Enregistrement des données d'un formulaire Word dans un fichier Excel
    Bonjour,

    Je débute en vba , et je dois extraire les données d ' un formulaire word vers un fichier excel.

    J ' ai donc suivi ce tuto:http://heureuxoli.developpez.com/office/sondage/#L4
    et créer un formulaire simple composé de 4 champs de texte montré ci-joint , et
    j ' essaie de récupérer les valeurs saisies par l ' utilisateur dans un fichier excel
    qui a pour entêtes colonne: Nom | Prenom | Jour de visite | Réservation IBM | Réservation Acer | etc....

    J ' ai donc testé la macro suivante:

    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
    Public Sub Extract()
    On Error Resume Next
    Dim wApp As New Word.Application
    Dim oDoc As Word.Document
    Dim i As Integer
     
     
    Set oDoc = wApp.Documents.Open(FileName:="C:\temp\sondage\COUPON REPONSE.doc")
     
    oDoc.Unprotect
     
    i = oDoc.FormFields.Count
    Debug.Print i
     
        For i = 1 To oDoc.FormFields.Count
            Debug.Print oDoc.FormFields(i).Result
     
        Next i
     
    Set oDoc = Nothing
    wApp.Quit
     
    End Sub
    mais ca ne fonctionne pas ....
    Merci de votre aide
    Fichiers attachés Fichiers attachés

  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
    Salut,

    Je pense pas que ça puisse fonctionner.
    Dans le tuto, j'explique comment insérer des champs de formulaire.
    Je n'en trouve pas dans ton document, ce qui fait qu'aucune donnée n'est extraite.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci de ton aide , mais mon document est bien constitué de champs de formulaire( ceux inhérents a word 2007, pas les hérités).
    En fait , mon fichier est un dotx , mais vu que developpez n ' accepte pas ce genre de fichier , je l ' ai renommé en .doc ( ce qui a du supprimer les contrôles je pense)

    Voici le lien ou j ' héberge mon document:

    http://dl.free.fr/kxMDBEnty

    Merci de ton aide !

    Cordialement

  4. #4
    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
    Salut,

    J'avais déjà changé l'extension pour pouvoir l'ouvrir.
    Mais mon tuto est axé sur les champs de formulaire hérités, si tu utilises autre chose, ça ne fonctionnera pas.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Ok , je comprends mieux.
    J ' ai modifié mon formulaire comme tu me l ' as suggéré.
    http://dl.free.fr/niIQQ4fT0

    Maintenant quant j ' exécute la macro sous word
    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
    Public Sub Extract()
    On Error Resume Next
    Dim wApp As New Word.Application
    Dim oDoc As Word.Document
    Dim i As Integer
     
     
    Set oDoc = wApp.Documents.Open(FileName:="C:\temp\sondage\COUPON REPONSE.doc")
     
    oDoc.Unprotect
     
    i = oDoc.FormFields.Count
    Debug.Print i
     
        For i = 1 To oDoc.FormFields.Count
            Debug.Print oDoc.FormFields(i).Result
     
        Next i
     
    Set oDoc = Nothing
    wApp.Quit
     
    End Sub
    Ça ne fait rien ( mais en même temps , je ne vois pas dans ce code ou ca initialise le fichier excel ?)

    Ce bout de code est supposé enregistrer dans un fichier excel ?
    Merci bien

  6. #6
    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
    Salut,

    Pourquoi ce code devrait-il fonctionner avec Excel ?

    Dans le tuto, on aborde Outlook, Word et Access (DAO).

    Le code d'extraction est une fonction qui est lancée au départ d'une routine dans Access pour alimenter une table.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci de ton aide.
    J ' essaye justement d ' adapter le code de ton tuto pour Excel !
    Or il ne reconnait pas la variable ThisWorkbook:"La méthode "thisworkbook" de l'objet global a échoué"
    J ' ai bien rajouté la référence vers excel

    Merci !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    voici ma macro:

    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 import_client()
    Dim Fich As Excel.Worksheet
    Set Fich = ThisWorkbook.Worksheets("All_Clients")
    chemin = "C:\Documents and Settings\EddayanH\Desktop\tutorielrecupinfo"
    mesfichiers = Dir(chemin & "*.docx")
    Dim Variables As Variant
    Variables = Array("nom", "prenom", "dateVisite", "IBM", "Acer", "HP", "Sony", "Toshiba")
     
    nb_Champs = 8
    num_row = 1
    i = 0
     
    For i = 0 To nb_Champs - 1
      Fich.Cells(num_row, i + 1) = Variables(i)
    Next i
     
    Set FichierWord = CreateObject("word.application")
    FichierWord.Visible = True
    FichierWord.DisplayAlerts = False
     
    Do While mesfichiers <> ""
      If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "CouponReponse(document).docx" Then
        monDocument = chemin & mesfichiers
        FichierWord.Documents.Open FileName:=monDocument, ReadOnly:=True
        num_row = num_row + 1
        num_col = 1
        For i = 0 To nb_Champs - 1
          Fich.Cells(num_row, i + 1) = FichierWord.ActiveDocument.FormFields(Variables(i)).Result
        Next i
        FichierWord.Documents.Close (0)
      End If
      mesfichiers = Dir
    Loop
    FichierWord.Quit
     
    End Sub
    il me met une erreur a la ligne 2:ThisWorkbook:"La méthode "thisworkbook" de l'objet global a échoué"
    j' ai pourtant bien ajouté la référence microsoft excel object.
    Merci de votre aide !

  9. #9
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Thisworkbook correspond au classeur courant, il n'est donc pas reconnu, utilisez plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Excel.workbook.worksheets("All_Clients")

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    merci de ton aide!

    Mais quant je remplace la ligne , ca me met maintenant :

    membre de méthode ou de données introuvable en surlignant le Workbook comme si il ne le reconnaissait pas.
    Les référence sont pourtant bien ajoutés .

    Merci

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Résolu en ouvrant le fichier excel d ' une autre maniere;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set xls = CreateObject("Excel.Application")
    xls.Workbooks.Open cheminExcel
    xls.Visible = True
    Set xlsheet = xls.Worksheets(1)

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/07/2013, 16h24
  2. [AC-2003] Enregistrement des données d'un formulaire dans deux tables en VBA Access
    Par jarodCameleon dans le forum VBA Access
    Réponses: 10
    Dernier message: 23/06/2010, 23h01
  3. Réponses: 12
    Dernier message: 24/10/2007, 12h00
  4. Enregistrement des données d'un formulaire dans SharePoint
    Par fanfan49 dans le forum SharePoint
    Réponses: 1
    Dernier message: 06/06/2007, 23h12
  5. Enregistrement des données d'un formulaire
    Par mymyma dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/07/2006, 10h28

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