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 :

Insertion automatique d'un tableau de référence basé sur style


Sujet :

Word

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Insertion automatique d'un tableau de référence basé sur style
    Bonjour,

    j'essaye de faire un modele de document un peu evolué mais je suis coincé.
    Dans l'idée j'essaye d'avoir des champs textes qui se numérote automatiquement (ce ne sont pas forcément des titres) j'ai créé donc inséré un champs dans lequel une "sequence" numérote automatiquement une variable.
    Exemple : "V - 1 : problemeA", "V - 2 : problemeB" ,"...". Pour plus de facilité tout ces champs ont le même style

    J'aimerais pouvoir générer un tableau qui reprend l'intégralité des champs présent dans mon document auquel je pourrais rajouter des colonnes, l'idée et d'avoir une vue synthétique.
    Pour le moment je gère ca en manuelle avec de copier coller avec liaison, mais c'est pas super pratique.

    Y aurait-il un moyen de généré ca un peu a la maniere de sommaire?

    Vu que c'est un peu compliqué a expliqué je joint un exemple de ce que j'essaye de faire.

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En transformant votre document en .docm, la macro suivante identifie le contenu des champs texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub RepertorierLesChampsTexte()
     
    Dim ControlTexte As ContentControl
     
        MsgBox ActiveDocument.Range.ContentControls.Count
     
        For Each ControlTexte In ActiveDocument.Range.ContentControls
            MsgBox ControlTexte.Range.Text
        Next ControlTexte
     
    End Sub
    Il vous suffirait après avoir déterminé le nombre de ces contrôles dans le document, de créer une table adaptée à votre besoin et de remplir chaque première colonne de chaque ligne avec ControlTexte.Range.Text.

    En ce qui concerne la construction d'une table, un exemple dans ce post : faire-liens-word-tableau-synthese

    Cordialement.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ok merci, je vais regarder ca de plus pret (je ne suis pas familié des macro).

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    j'ai un peu avancé, mais la je suis bloqué sur un leger détail.
    J'utilise la fonction .ActiveDocument.SelectContentControlsByTitle("xxx") ce qui me permet de limiter les ContentControl que je récupére.
    Dans mon document j'ai 3 famille de CC et pour chaque occurence du premier j'ai les deux autres qui suivent.
    CC 1 : Vuln
    CC 2 : crit
    CC 3 : cout

    Du coup je génère mon tableau avec le nombre de colonne/ligne qui me faut, et via 3 boucles successives je récupère mes "Vuln", "crit", "cout"
    Cependant l'ordre de récupération semble "aléatoire". Est il possible de dire dans la fonction SelectContentControlsByTitle de prendre les CC dans l'ordre dans lequel ils apparaissent dans le documents?

    Exemple our le texte suivant :
    V1
    Crit : 1
    Cout : a

    V2
    Crit : 2
    Cout : b

    V3
    Crit : 3
    Cout : c

    J'obtiens le tableau suivant (même résultat sans le tableau en debugant avec du msgbox) :
    V1 3 c
    V3 1 a
    V2 2 b.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elkekou Voir le message
    Est il possible de dire dans la fonction SelectContentControlsByTitle de prendre les CC dans l'ordre dans lequel ils apparaissent dans le documents?
    Bonjour,

    Il faudrait mettre votre exemple en ligne pour voir.

    Cordialement.

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse, pour le coup j'ai trouvé un workaround voila le bout de code que j'utilise :

    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
     
     
    For Each cc In .Range.ContentControls
                col = 0
                Select Case cc.Title
                   Case "Vuln"
                        col = 1
                        Line = Line + 1
                   Case "Crit"
                        col = 2
                   Case "Cout"
                        col = 3
                End Select
     
                With .Tables(1).Cell(Line, col)
                    .Range.Text = cc.Range.Text
                End With
            Next cc
    EDIT: si ca peut aider quelqu'un je met en pj le document. NB ; le code est livré tel quel bug gratuit .
    Fichiers attachés Fichiers attachés

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elkekou Voir le message
    Pour le coup j'ai trouvé un workaround voila le bout de code que j'utilise :
    Je vous demandais plutôt le fichier exemple sur lequel vous travaillez.

    Cordialement.

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 03/12/2011, 22h30
  2. Insertion automatique dans un tableau
    Par bibifoke dans le forum C#
    Réponses: 14
    Dernier message: 27/12/2010, 15h00
  3. [WD-2003] Insertion automatique de ligne dans tableau word après renvoi à la ligne
    Par melouille56 dans le forum VBA Word
    Réponses: 5
    Dernier message: 05/08/2009, 15h49
  4. Réponses: 19
    Dernier message: 27/07/2007, 08h22
  5. [VBA-E]insertion automatique d'une ligne dans un tableau
    Par janus82 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/04/2006, 15h42

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