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 :

[Macro VB - Word] Changer la couleur d'un mot


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [Macro VB - Word] Changer la couleur d'un mot
    Bonjour à tous,

    Voilà ce que j'aimerais faire, sachant que le VB est pour moi est très récent...

    J'ai un tableau dans Word, la première colonne contient des mots, la 2e des "0" et des "1" (issus d'un publipostage pour signifier la présence ou l'absence de l'exposition professionnelle).

    Ex :

    1ere col / 2e col :
    Amiante 1
    Silice 0
    HAP 1
    Diesel 0
    Beryllium 0
    Chrome 1
    Nickel 0
    CoW 0
    Cadmium 0
    BCME 0
    Arsenic 0
    Peinture 0
    J'aimerais à chaque fois qu'il y a "1" que le facteur associé s'écrive en rouge par exemple (dans l'exemple au dessus : Amiante, HAP et Silice deviendrait rouge).

    1ere col / 2e col :
    Amiante 1
    Silice 0
    HAP 1
    Diesel 0
    Beryllium 0
    Chrome 1
    Nickel 0
    CoW 0
    Cadmium 0
    BCME 0
    Arsenic 0
    Peinture 0
    Merci d'avance pour votre aide.

  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
    Le principe à utiliser est le suivant, on va en premier lieu vérifier le contenu de la cellule de la seconde colonne.
    Si cette valeur est égale à 1, on va colorer le texte de la cellule de la première colonne.

    Ce qui nous intéresse, c'est le nombre de lignes.
    Ce nombre de ligne nous allons le stocker dans la variable i

    Dans une cellule, on a toujous deux caractères inutiles.
    On va les supprimer avec la fonction txtNet, on mesure la longueur de la chaîne, on lui enlève 2 et on retire les caractères de la cellules sans les deux derniers.

    On va faire une boucle sur les cellules de la seconde colonne.


    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 colo()
    Dim oTbl As Table
    Dim i As Integer, j As Integer
     
    Set oTbl = ActiveDocument.Tables(1)
    i = oTbl.Rows.Count
     
    For j = 1 To i
        If txtNet(oTbl.Cell(j, 2).Range.Text) = 1 Then oTbl.Cell(j, 1).Range.Font.Color = wdColorRed
     
     
    Next j
     
    End Sub
     
    Function txtNet(stTemp As String) As String
    txtNet = Left(stTemp, Len(stTemp) - 2)
     
    End Function
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse !!

    J'ai bien compris le concept !

    Mais j'ai une erreur d'execution du code 'erreur d'execution 13' : incompatibilité de type sur cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If txtNet(oTbl.Cell(j, 2).Range.Text) = 1 Then
    Mon tableau aurait-il un problème ?

    Merci !

  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
    Peux tu mettre ton document sur le forum.

    c'est le contenu du tableua qui ne serait pas comme je le pense.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bien sur !

    Voir doc ci-joint !

    PS : J'ai mis les 2 premières fiches. Mais j'en ai 150 comme cela !

    C'est toujours le même concept, c'est juste les 2 premières lignes avec les identifiants qui change !

    Merci beaucoup !
    Fichiers attachés Fichiers attachés

  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
    Je suppose que toutes les fiches se suivant !

    Dans ce cas, c'est l'indice de la table qui n'était pas bon!

    On peut envisager de traiter toutes les tables du document.

    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
    Sub colo()
    Dim oTbl As Table
    Dim i As Integer, j As Integer
     
     
    For Each oTbl In ActiveDocument.Tables
     
    If UCase(txtNet(oTbl.Cell(1, 1).Range.Text)) = "NUISANCE" Then
    Debug.Print "ici"
        i = oTbl.Rows.Count
     
     
        For j = 1 To i
        Debug.Print j
        If txtNet(oTbl.Cell(j, 2).Range.Text) = "1" Then oTbl.Cell(j, 1).Range.Font.Color = wdColorRed
     
     
        Next j
    End If
    Next oTbl
     
    End Sub
     
    Function txtNet(stTemp As String) As String
    txtNet = Left(stTemp, Len(stTemp) - 2)
     
    End Function
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Que dire...

    Merveilleux !

    Merci 1000 fois !!

    C'est là que je me dis que vraiment, j'suis mauvaise de chez mauvaise en VB, faut vraiment que je m'y mette...

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Macro de comptage de caractère dans Word
    Bonjour,

    Je suis à la recherche d'une macro de comptage dans Word.

    Je connais la manip pour compter les caractères, mots, avec et sans espace, mais ce n'est pas ça que je recherche.

    Je m'explique :

    J'ai plusieurs documents Word 2010 qui contiennent du texte en noir et du texte en bleu.

    Je voudrais compter l'ensemble des caractères en bleus dans le texte (si possible avec les espaces au milieu) et afficher une boite de dialogue avec le comptage (Caractères totals, caractères noirs, espace noirs, caractères bleus, et espacex bleus).

    Je voudrais ensuite coller cette macro dans un bouton de la barre de menu pour qu'elle soit accessible à tout moment. (Ca je pense que je sais faire)

    Etant complètement novice en VBA je compte sur votre aide si précieuse pour moi.

    D'avance merci beaucoup pour vos réponses et votre aide.

    Séfal.

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

Discussions similaires

  1. Changer la couleur d'un mot en fonction de celui-ci
    Par densjo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/01/2012, 20h00
  2. changer la couleur d'un mot dans un jtextpane
    Par tamara6 dans le forum Débuter
    Réponses: 2
    Dernier message: 26/03/2010, 20h08
  3. Changer la couleur d'un mot dans un wxTextCtrl ?
    Par Poison_xtreamlua dans le forum wxWidgets
    Réponses: 1
    Dernier message: 30/06/2009, 14h52
  4. [WD10]Changer la couleur d'un mot dans un champ RTF
    Par Louis Griffont dans le forum WinDev
    Réponses: 2
    Dernier message: 15/11/2007, 03h52
  5. Changer la couleur d'un mot avec ksh
    Par mzt.insat dans le forum Linux
    Réponses: 7
    Dernier message: 04/05/2006, 12h37

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