1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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 régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par Kestion100 Voir le message
    Bonjour,

    Quelle nécessité avez-vous d'utiliser Word ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par Kestion100 Voir le message
    Au lieu de diffuser des fichiers Word, des fichiers Excel sont-ils possibles ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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 régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    Par défaut

    Il n'existe pas une sorte d'index des champ hors leurs signets?

  8. #8
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par Kestion100 Voir le message
    Il faudrait voir votre fichier Word.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    Par défaut

    Il s'agit d'un .docm qui n'a pas l'air de passer.....

  10. #10
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    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.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    Par défaut

    Une capture écran peut-être?

    Nom : 2017-10-11_11h51_56.jpg
Affichages : 15
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 : 15
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 régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    Par défaut

    Les capture écran suffiront-elle?

  13. #13
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    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é.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

  15. #15
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    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.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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 régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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 régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    Par défaut

    Le code que j'utilise pour la remontée est dans Excel, je précise

  19. #19
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 518
    Points : 6 540
    Points
    6 540
    Billets dans le blog
    19

    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
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  20. #20
    Membre régulier
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 493
    Points : 108
    Points
    108

    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, 09h45
  2. Réponses: 10
    Dernier message: 23/03/2011, 00h40
  3. Réponses: 27
    Dernier message: 20/01/2010, 12h39
  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, 16h54
  5. Réponses: 3
    Dernier message: 26/08/2009, 19h25

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