VBA pour mettre une case de tableau en couleur

Fermé
Vanessa65 - 10 janv. 2017 à 20:43
m@rina Messages postés 20940 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 26 septembre 2024 - 11 janv. 2017 à 02:38
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


A voir également:

1 réponse

m@rina Messages postés 20940 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 26 septembre 2024 11 329
Modifié par m@rina le 11/01/2017 à 02:39
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