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

Word Discussion :

Remontée champs formulaire word dans excel


Sujet :

Word

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut Remontée champs formulaire word dans excel
    Bonjour,
    J'utilise un formulaire Word et remonte les données des champs dans Excel.

    Je voudrais que certains champs soient ignorés lors de la remontée.
    Je précise que j'ai déjà éliminé des champs qui arrivent à la fin de mon formulaire par mon code VBA dans Excel mais que cela sont en plein milieu de mon formulaire.

    Il serait donc possible d'agir en modifiant le "numéro" du champ, ce qui répondrait à un autre problème que je rencontre (ordre de remontée de mes champs dans mes cellules Excel).
    Sinon, si je peux les sortir de la remontée par leurs signets, je suis preneur aussi.

    MERCI pour le coup de main

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Une partie du code utilisé sous Excel:


    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    Sub RECUPCOLLES()
    Dim Fich As Worksheet, ligne As Long
    Set Fich = ThisWorkbook.Worksheets("RECUP")
    Sheets("RECUP").Visible = True
    Worksheets("RECUP").Activate
     
     
     
     
     
    Chemin = "H:\XX\"
    mesfichiers = Dir(Chemin & "**")
     
     
     
     
     
    Set FichierWord = CreateObject("word.application")
     
    FichierWord.Visible = True
    FichierWord.DisplayAlerts = False
     
    Do While mesfichiers <> ""
      If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "clients.doc" Then
        monDocument = Chemin & mesfichiers
     
     
     
        FichierWord.Documents.Open Filename:=monDocument, ReadOnly:=True
        Cells(Range("A1").End(xlDown).Row + 1, 1).Select
        ligne = ActiveCell.Row
     
        For i = 1 To 127
     
        Cells(ligne, i) = FichierWord.ActiveDocument.FormFields(i).Result
     
     
     
       If i >= 8 Then
     
        If Not IsNumeric(Cells(ligne, i).Value) Or Cells(ligne, i).Value = "" Then
                        Cells(ligne, i).Value = Cells(ligne, i).Value
                    Else
     
     
                        Cells(ligne, i).Value = CDbl(Cells(ligne, i).Value)
     
     
                  End If
                  Else
     
        End If
        Next i

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Bonjour,

    Quelle nécessité avez-vous d'utiliser Word ?

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Les fichiers Word sont diffusés à des utilisateurs qui les remplissent de façon mensuels, je les récupère et remonte les données dans Excel.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Au lieu de diffuser des fichiers Word, des fichiers Excel sont-ils possibles ?

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    A non, ce n'est pas possible, cela fait trois que nous fonctionnons comme cela et je viens de diffuser le fichier word mis à jour pour cette année, je vais les perdre. Peut-être l'année prochaine

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Il n'existe pas une sorte d'index des champ hors leurs signets?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Il faudrait voir votre fichier Word.

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Il s'agit d'un .docm qui n'a pas l'air de passer.....

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Il s'agit d'un .docm qui n'a pas l'air de passer.....
    Il vous faut le ziper.

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Une capture écran peut-être?

    Nom : 2017-10-11_11h51_56.jpg
Affichages : 216
Taille : 69,5 Ko

    Le fichier Word avec ses champs.

    Et le fichier Excel avec les titres de colonne dans l'ordre:
    Nom : 2017-10-11_11h57_43.jpg
Affichages : 195
Taille : 25,1 Ko

    Il s'agit des champ avec des codes barre qu'il faudrait ne pas remonter.

    Attention, du code est rattaché à ces champs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub CdBr()
    ActiveDocument.FormFields("Texte1").Result = "*" & ActiveDocument.FormFields("NOM").Result & "*"
    ActiveDocument.FormFields("Texte2").Result = "*" & ActiveDocument.FormFields("Prénom").Result & "*"
    ActiveDocument.FormFields("Texte3").Result = "*" & ActiveDocument.FormFields("MOIS").Result & "*"
     
     
     
    End Sub

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Les capture écran suffiront-elle?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Les capture écran suffiront-elle?
    Je préférerais voir votre document. Dans l'explorateur Windows, clic droit sur votre fichier et Envoyer vers Dossier compressé.

  14. #14
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Je n'ai pas réussi à utiliser correctement le fichier. Je l'ai donc transformé en .docx puis en .docm et j'ai créé le code suivant :
    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
     
    Sub Essai()
     
    Dim DocEncours As Document
    Dim I As Integer
     
        Set DocEncours = ActiveDocument
        With DocEncours
          For I = 1 To .FormFields.Count
             ' Semaine 1
              If I >= 11 And I <= 34 Then
                 .FormFields(I).Range.Select
                 MsgBox .FormFields(I).Name & " : " & .FormFields(I).Range.Text
              End If
              Debug.Print .FormFields(I).Name & " : " & .FormFields(I).Range.Text
          Next I
        End With
        Set DocEncours = Nothing
     
    End Sub
    Vous pouvez donc utiliser le nom des champs pour remplir votre tableau Excel. Dans votre cas, je réaliserais une table de correspondance dans Excel.

  16. #16
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Je crois comprendre que c'est le code proposé à utiliser dans Excel pour remonter les données des champs?
    Si tel est le cas, j'utilise le code indiqué car j'ai un nombre trop important de champ à remonter, près de 127.

    Sinon, je comprends mal et il s'agit du code à utiliser sous Word?

  17. #17
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Je vois la logique de ton code, il affiche dans une Message Box les valeurs des champs autre que les champs avec les codes barres (enfin je ne vois pas les champs avant).

    Je tente d'adapter dans Excel avec:

    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
    Sub RECUPCOLLES()
    Dim Fich As Worksheet, ligne As Long
    Set Fich = ThisWorkbook.Worksheets("RECUP")
    Sheets("RECUP").Visible = True
    Worksheets("RECUP").Activate
     
     
     
     
     
    Chemin = "H:\XXX\"
    mesfichiers = Dir(Chemin & "**")
     
     
    Set FichierWord = CreateObject("word.application")
     
    FichierWord.Visible = True
    FichierWord.DisplayAlerts = False
     
    Do While mesfichiers <> ""
      If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "clients.doc" Then
        monDocument = Chemin & mesfichiers
     
     
     
        FichierWord.Documents.Open Filename:=monDocument, ReadOnly:=True
        Cells(Range("A1").End(xlDown).Row + 1, 1).Select
        ligne = ActiveCell.Row
     
        For i = 1 To 3 And 7 to 127
     
        Cells(ligne, i) = FichierWord.ActiveDocument.FormFields(i).Result
    En me disant que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 1 To 3 And 7 to 127
    éliminera les champ que je ne veux pas remonter mais la syntaxe n'est pas bonne et cette ligne reste marquée en rouge.

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Le code que j'utilise pour la remontée est dans Excel, je précise

  19. #19
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Le code que j'utilise pour la remontée est dans Excel, je précise
    J'ai bien compris, mais avant de combiner Word avec Excel, il faut déjà comprendre comment fonctionne Word.
    La seule différence par rapport à votre code .FormFields(i).Result , c''est .FormFields(I).Range.Text


    Quant à la boucle dans Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                For I = 1 To 127
                    Select Case I
                           Case 1 To 3, 7 To 127
     
                           Case Else
                               ' Suite du code
                    End Select
                Next I

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Dans ton code, le I me paraît très intéressant car c'est le point de repère de nos code.
    Serait-il possible de modifier le numéro d'un champs.
    Je m'explique, ce sont les qui nous dérange pour I = 4 à I = 6, donc si les champ (ici Texte1; Texte2; Texte3 (signets)) pouvaient correspondre à I = 130; I = 131; I = 132 par exemple, mon code For I= 1 To I = 130 pourrait fonctionner.
    Sinon, il faudrait exclure I pour I = 4 à I = 6.

    Je parle en termes peu académiques, je sais mais j'essaie de me faire comprendre

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2007] Problème pour récupérer un champ Word dans excel
    Par Jackfly dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/04/2013, 08h45
  2. Réponses: 10
    Dernier message: 22/03/2011, 23h40
  3. Réponses: 27
    Dernier message: 20/01/2010, 11h39
  4. [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
  5. Réponses: 3
    Dernier message: 26/08/2009, 18h25

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