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 :

Masquer un tableau selon critères VBA Word


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Masquer un tableau selon critères VBA Word
    Bonjour,

    J'ai un document Word qui peut contenir plusieurs tableaux. Lorsque le contenu est d'une certaine couleur (rouge foncé par exemple, je souhaiterai que le tableau soit masqué.
    Voici ce que j'ai fait. N'y a-til pas une manière plus rapide pour obtenir le meme résultat.
    Merci d'avance de vos réponses et bonnes fêtes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ntabl = ActiveDocument.Tables.Count    'count number of tables in document
     If ntabl >= 1 Then                          ' check occurence of table
        For Each tblOne In ActiveDocument.Tables
            If tblOne.Cell(1, 1).Range.Font.Color = wdColorDarkRed Then  ' if the font of the first cell is font is darkred (CDS info only)
             tblOne.Range.Font.Hidden = True          '... the table will be hidden
            End If
        Next
      End If

  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
    Bonjour et bienvenue sur les forums Office de DVP.

    Je ne vois pas d'autre solution.
    Hidden est la seule que je connaisse.
    Tu peux l'appliquer à une section, mais ça ne va pas alléger ton code.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    OK Merci pour ta réponse. Je me permets une autre question. Quand j'utilisais comme condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tblOne.Range.Font.Color = wdColorDarkRed
    certains tableaux n'étaient pas reconnus. La police était bien la bonne, les lignes étaient reconnues, mais pas le tableau. Sais-tu pourquoi ? Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ntabl = ActiveDocument.Tables.Count    'count number of tables in document
     If ntabl >= 1 Then                          ' check occurence of table
        For Each tblOne In ActiveDocument.Tables
            If tblOne.Cell(1, 1).Range.Font.Color = wdColorDarkRed Then  ' if the font of the first cell is font is darkred (CDS info only)
             tblOne.Range.Font.Hidden = True          '... the table will be hidden
            End If
        Next
      End If

  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,

    Tu fais un contrôle sur le contenu de la cellule et pas simplement sur le texte qu'elle contient.

    Une cellule contient d'autres choses que du texte.
    Pour t'en convaincre, fais un Len sur tblOne.Cell(1, 1).Range.Text.

    Il est possible que seul le mot soit coloré et pas la cellule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim wdWord
     
     
    For Each oTbl In ActiveDocument.Tables
        oTbl.Cell(1, 1).Select
        For Each wdWord In Selection.Words
            If wdWord.Font.Color = wdColorRed Then Debug.Print "ok"
        Next wdWord
     
        'Debug.Print oTbl.Cell(1, 1).Range.Font.Color
    Next oTbl
    Peut-être une piste ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de ton aide.


  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
    Tu ne nous dit pas si ça te convient comme solution ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Le premier code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tblOne.Cell(1, 1).Range.Font.Color = wdColorDarkRed
    me convenait. En tout cas ca marche!
    Mais je ne comprends pas pourquoi le deuxième
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tblOne.Range.Font.Color = wdColorDarkRed
    fonctionne... parfois.

    je comprends qu'il puisse y avoir d'autre chose que du texte dans une cellule ou un tableau... Mais je n'ai pas trouvé ce qui fait la différence de contenu. Le test avec la fonction Len, ne retrouve que les caractères Chr (13) Chr(17).
    Mes neurones sont surchauffés...Merci de ton éclairage..

  8. #8
    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,

    Si tu fais un test avec un cellule contenant 1 caractère, tu reçois 3, il pourrais arriver que ces deux caractères supplémentaires ne soient pas de la même couleur et dans ce cas, la valeur de la cellule en ce qui concerne la couleur n'est plus la même.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour et bonne année,
    Je pense avoir compris.
    Quand les tableaux ont soit plusieurs lignes, soit trop de paragraphes, le code couleur retourné est "9999999" (indéterminé), même si la couleur est correcte pour chaque cellule et chaque ligne.
    Il vaut mieux donc demander les propriétés de la première cellule.
    Merci à tous

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

Discussions similaires

  1. Extraire lignes d'un tableau selon critère
    Par konig69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2015, 11h52
  2. [PHP 5.4] Exploser un fichier Word en tableau selon critères
    Par tigunn dans le forum Langage
    Réponses: 1
    Dernier message: 23/05/2014, 11h13
  3. [XL-2007] Créer un tableau en vba selon critères
    Par draale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2014, 14h19
  4. VBA - Remplissage d'un tableau selon plusieurs critères
    Par khroutchev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2013, 15h20
  5. [VBA][WORD]Identifier un tableau dans un document
    Par mister3957 dans le forum VBA Word
    Réponses: 15
    Dernier message: 10/01/2006, 13h56

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