VBA pour mettre une case de tableau en couleur

Vanessa65 -  
m@rina Messages postés 27474 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je réalise un publipostage d'environ 500 étiquettes, avec nom, prénom et métier.
Il y a 3 métiers, médecin, psychologue et pharmacien.
J'aimerais que selon le métier, la couleur soit différente.
Je sais que ce n'est pas possible avec le publipostage (A moins que quelqu'un ait une astuce?).
Du coup j'ai essayé de créer un programme avec VBA pour appliquer la condition après avoir fait mes étiquettes, mais j'ai beaucoup de mal avec le code...

Quelqu'un pour m'aider?? Je bloque complètement.

Merci d'avance !!!!!!
Keep cool

1 réponse

  1. m@rina Messages postés 27474 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonsoir,

    Le plus simple est probablement de faire le publipostage en trois fois, une fois par métier, en utilisant le filtrage.

    Si tu tiens à la macro, voici :

    Sub couleurs()
    'macro écrite par m@rina
    Dim cellule As Cell, ligne As Row, métier
    For Each ligne In ActiveDocument.Tables(1).Rows
    For Each cellule In ligne.Cells

    With cellule.Shading
    Select Case métier
    Case métier = InStr(1, cellule.Range.Text, "Médecin")
    .BackgroundPatternColor = wdColorBrightGreen
    Case métier = InStr(1, cellule.Range.Text, "Psychologue")
    .BackgroundPatternColor = wdColorLightYellow
    Case métier = InStr(1, cellule.Range.Text, "Pharmacien")
    .BackgroundPatternColor = wdColorAqua
    End Select
    End With
    Next
    Next ligne
    End Sub


    Je te laisse mettre tes propres couleurs...
    Attention, c'est sensible à la casse.

    m@rina
    Méfiez-vous de la tisane : c'est un poison dangereux...
    0