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 :

Exporter résultats cases à cocher formulaire word dans excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut Exporter résultats cases à cocher formulaire word dans excel
    Bonjour à tous,

    J’ai des champs case à cocher crées avec la barre d’outil formulaires, dans un questionnaire de satisfaction nommé 1.doc., dans mon fichier 2010 sur le bureau, d’autre seront crées, 2.doc… je ne sais combien il y en aura au final. Certains champs sont remplies avec du texte, d’autres avec des chiffres et le plus avec des croix ou pas.

    Je voudrais que les champs de tous les résultats de ces champs alimentent une feuille Excel (nommée récap satisfaction.xls) qui se trouve au même emplacement qu’eux (2010).

    Remplissage sous forme de 1 si X, 0 si 0, de texte si c’est du texte ou de chiffre si c’est du chiffre, automatiquement à chaque fois qu’un formulaire est enregistré dans 2010, sans rien ouvrir. Le recueil des champs sera fait de B4 à AF4 pour le formulaire 1, B5 à AF5 pour le formulaire 2.

    J’ai cherché une pièce jointe sur plusieurs sites mais j’arrive pas à me débrouiller sur ce coup là.

    Quelqu’un a-t-il souvenir d’un VBA déjà posté dans le genre de ma demande et correspondant mieux que ce que j’ai trouvé ci-dessous.

    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
    Option Explicit
     
    'comment copier une ligne précise d'un tableau word et la coller dans excel?
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
     
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = False 'Word reste masqué pendant l'opéraion
    Set WordDoc = WordApp.Documents.Open("monDocument.doc") 'ouvre le document Word
     
    'copies la 3eme ligne de la 1ere table Word
    WordDoc.Tables(1).Rows(3).Range.Copy
     
    'collage dans Excel
    Range("A1").PasteSpecial xlPasteValues
     
    WordDoc.Close 'fermeture document Word
    WordApp.Quit 'fermeture session Word

    Je vous remercie tous infiniment d’avance.

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut
    Bonsoir,

    Finalement j'essaye plutôt d'adapter ce code trouvé qui fonctionne bien pour sa requête originale.

    Mais en rouge les petits soucis que je rencontre pour mon modèle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub btnUSF_Click()
    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
    ‘est-ce que « btnUSF » veut dire uniquement les Cases texte hors j’ai besoin de récupérer aussi les informations des champs case à cocher (oui/non)
    Dim Wd As Word.Application
    Dim Chemin As String
    Dim i As Byte
    ActiveSheet.Range("B4:AF4").ClearContents 
    'les informations sont bien récupérées sur la ligne 4 mais pas à partir de la colonne B
    'Créer une instance de l'objet
    Set Wd = New Word.Application
    Chemin = ThisWorkbook.Path
    With Wd
    'Empêche Word de s'afficher à l'ouverture
    .Visible = False
    .documents.Open (Chemin & "\1.doc")
    ‘comment faire pour que le code reprenne les documents du n° 1 à l’infini sans les énumérer dans documents.Open (Chemin & "\1.doc") ?
    'Place les valeurs des 31 champs Word dans la feuille Excel.
    For i = 1 To 31
    Cells(4, i).Value = .ActiveDocument.Fields(i).Result
    Next i
    'Ferme le document Word
    .Quit False
    End With
    Set Wd = Nothing
    End Sub


    Merci à vous de m’aider

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut
    Bonjour à tous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        .documents.Open (Chemin & "\1.doc")
    Je ne sais pas comment je dois écrire cette ligne pour que tous mes documents word de mon fichier soit pris en compte sans les énumérer et que le informations s'ajoutent les unes sous les autres dans excel.

    J'ai essayé avec Derlig = Derlig + 1 que j'ai lu sur le site mais je suis pas douée et ça n'a pas fonctionné. Une piste SVP.

    Besoin de votre aide

    Merci

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Bonjour,
    Je ne sais pas comment je dois écrire cette ligne pour que tous mes documents word de mon fichier soit pris en compte sans les énumérer
    Regarde l'aide sur DIR. il y a un exemple avec normallement, avec boucle et tout le toutim..

    et que le informations s'ajoutent les unes sous les autres dans excel.
    Dans ton cas, il serait simple de travailler avec comme indice une variable numéro de ligne (ex Ligne_nr) que tu initialises à 0 avant ta boucle de lecture des fichier Word (voir Dir) et tu modifies la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(4, i).Value = .ActiveDocument.Fields(i).Result
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ligne_Nr =Ligne_Nr +  1
    Cells(4, Ligne_Nr).Value = .ActiveDocument.Fields(i).Result
    C'est tout je crois.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut
    merci Godzestla,
    mais c'est quoi l'aide DIR

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Ce n'est pas l'aide DIR, c'est chercher dans l'aide dans VBA sur la fonction DIR.

    Ne me dis pas que tu ne connais pas l'aide ?

    Allez, je suis bon prince, c'est jeudi, je te sers même sur un plateau l'exemple de l'aide sur la fonction DIR. C'est bientôt Noël, alors....
    Dir Function Example
    This example uses the Dir function to check if certain files and directories exist. On the Macintosh, “HD:” is the default drive name and portions of the pathname are separated by colons instead of backslashes. Also, the Microsoft Windows wildcard characters are treated as valid file-name characters on the Mac. However, you can use the MacID function to specify file groups.

    Dim MyFile, MyPath, MyName
    ' Returns "WIN.INI" (on Microsoft Windows) if it exists.
    MyFile = Dir("C:\WINDOWS\WIN.INI")

    ' Returns filename with specified extension. If more than one *.ini
    ' file exists, the first file found is returned.
    MyFile = Dir("C:\WINDOWS\*.INI")

    ' Call Dir again without arguments to return the next *.INI file in the
    ' same directory.
    MyFile = Dir

    ' Return first *.TXT file with a set hidden attribute.
    MyFile = Dir("*.TXT", vbHidden)

    ' Display the names in C:\ that represent directories.
    MyPath = "c:\" ' Set the path.
    MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
    Do While MyName <> "" ' Start the loop.
    ' Ignore the current directory and the encompassing directory.
    If MyName <> "." And MyName <> ".." Then
    ' Use bitwise comparison to make sure MyName is a directory.
    If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
    Debug.Print MyName ' Display entry only if it
    End If ' it represents a directory.
    End If
    MyName = Dir ' Get next entry.
    Loop

Discussions similaires

  1. Réponses: 27
    Dernier message: 20/01/2010, 11h39
  2. Formulaire et cases à cocher avec Word 2003
    Par 92_Pascal dans le forum Word
    Réponses: 15
    Dernier message: 01/09/2009, 14h46
  3. Export Formulaire Graphique dans Excel
    Par kenobyalex dans le forum VBA Access
    Réponses: 10
    Dernier message: 25/03/2008, 11h41
  4. [Conception] formulaire et case à cocher et recherche dans une base de donnée
    Par olivier_1970 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/06/2006, 01h03
  5. Exporter formulaire Access dans Excel
    Par teti_chenille dans le forum Access
    Réponses: 6
    Dernier message: 28/02/2006, 17h40

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