Mise en forme conditionnelle dans Word

Forum Microsoft Office Word

Modérateur : Argitxu

Mise en forme conditionnelle dans Word

Publicité
 

Claire
Posteur débutant
Posteur débutant
Messages : 5
Enregistré le : 04 sept. 2019, 09:40

Mise en forme conditionnelle dans Word

Message non lu par Claire » 04 sept. 2019, 10:08

Bonjour à tous,

Je cherche un peu (beaucoup :D) d'aide s'il vous plait pour mon modèle word.

J'ai un tableau avec des menus déroulant dans les cellules et un contrôle de contenu répétitif. Sous ces lignes j'insère parfois un autre type de ligne avec une mise en forme différente et d'autres menus déroulant via la galerie des tableaux rapides (ligne optionnelle).
Ce que je voudrais c'est : lorsque je sélectionne dans le menu déroulant de ma ligne "optionnelle" le choix "observation non levée" la ligne du dessus se remplisse d'une autre couleur.
Est-ce faisable ? J'ai essayé avec les quelques exemples donnés dans le forum mais sans succès et j'avoue ne pas maîtriser le VBA.

Merci pour vos retours et votre aide.
Claire

Avatar du membre
m@rina
Administrateur
Administrateur
Messages : 1336
Enregistré le : 14 août 2009, 08:51
Contact :

Re: Mise en forme conditionnelle dans Word

Message non lu par m@rina » 05 sept. 2019, 03:42

Bonjour Claire,

Il faudrait que tu me donnes le fichier, parce que, comme ça, c'est pas évident de tout comprendre.

A titre d'info, le forum pose problème en ce moment comme tu as pu voir à l'envoi de messages. Cela étant, les messages arrivent quand même.
Il faut que je prenne du temps pour réparer…
m@rina

Claire
Posteur débutant
Posteur débutant
Messages : 5
Enregistré le : 04 sept. 2019, 09:40

Re: Mise en forme conditionnelle dans Word

Message non lu par Claire » 05 sept. 2019, 15:47

Bonjour Marina,

Merci pour ton retour. En effet, je n'ai vu qu'après pour l'envoi des messages. je n'ai pas réussi à supprimer le deuxième... Désolée.

Je te joins le fichier.
RRT essais septembre.dotx
Merci
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Avatar du membre
m@rina
Administrateur
Administrateur
Messages : 1336
Enregistré le : 14 août 2009, 08:51
Contact :

Re: Mise en forme conditionnelle dans Word

Message non lu par m@rina » 05 sept. 2019, 18:55

Bonjour Claire,

Tout d'abord, il faut donner un titre ou une balise à la liste déroulante, sinon on ne saura pas laquelle va déclencher la macro.
Pour cela tu modifies ton bloc de construction (tableau rapide) : tu cliques sur la liste déroulante, puis Onglet Développeur, Propriétés, et tu donnes un nom à la balise. Dans la macro suivante, j'ai mis le nom "opt".

Ensuite, tu colles ces deux macros dans ThisDocument. Il faut savoir qu'il y a très peu d'événements possibles et en tous les cas, pas d'événement de type OnChange. En fait, il n'y en a que 2 : On Enter, et On Exit. Ce qui signifie que, pour déclencher la macro On Exit, il va falloir sortir de la liste déroulante en cliquant ailleurs.

La première macro va repérer quel est le numéro de la ligne du tableau où se trouve la ligne déroulante, au moment où tu vas cliquer dessus.
La seconde macro va se déclencher lorsque tu auras fait ton choix dans la liste déroulante, et donc si le choix est "Observation non levée", la ligne précédente va se colorer. Si tu changes d'avis, elle va se décolorer ! ;)
J'espère avoir compris le problème… Si c'est pas ça, re-explique moi !!

A titre d'info, j'ai mis la couleur bleue aqua, tu peux bien entendu mettre ce que tu veux.

Code : Tout sélectionner

Option Explicit
Dim LIGNE

Private Sub Document_ContentControlOnEnter(ByVal CC As ContentControl)
If CC.Tag = "opt" Then
If Selection.Information(wdWithInTable) = True Then
     LIGNE = Selection.Cells(1).RowIndex
End If
End If
End Sub


Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
Dim ligne2
If CC.Tag = "opt" Then
ligne2 = LIGNE - 1
MsgBox ligne2

    If CC.Range.Text = "Observation non levée" Then
        Selection.Tables(1).Rows(ligne2).Shading.BackgroundPatternColor = wdColorAqua
    Else:
        Selection.Tables(1).Rows(ligne2).Shading.BackgroundPatternColor = wdColorAutomatic
    End If
End If

End Sub
m@rina

Claire
Posteur débutant
Posteur débutant
Messages : 5
Enregistré le : 04 sept. 2019, 09:40

Re: Mise en forme conditionnelle dans Word

Message non lu par Claire » 06 sept. 2019, 17:42

Bonjour Marina,

Tout d'abord, merci pour ton aide précieuse et ta réactivité et je pense que tu as bien compris ma demande.
J'ai renommé les balises en "suivi".
J'ai réussi à copier/coller les macros dans "thisdocument" (avec difficultés, pas le copier/coller mais de trouver où était thisdocument !!! :lol: )
Par contre j'ai un message d'erreur dont je te joint la capture écran ;)

Merci encore de ton aide

Claire
Capture.PNG
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Avatar du membre
m@rina
Administrateur
Administrateur
Messages : 1336
Enregistré le : 14 août 2009, 08:51
Contact :

Re: Mise en forme conditionnelle dans Word

Message non lu par m@rina » 07 sept. 2019, 00:51

Quelle est ta version ?
m@rina

Claire
Posteur débutant
Posteur débutant
Messages : 5
Enregistré le : 04 sept. 2019, 09:40

Re: Mise en forme conditionnelle dans Word

Message non lu par Claire » 10 sept. 2019, 14:11

J'ai un microsoft office 365 business version 1908

Avatar du membre
m@rina
Administrateur
Administrateur
Messages : 1336
Enregistré le : 14 août 2009, 08:51
Contact :

Re: Mise en forme conditionnelle dans Word

Message non lu par m@rina » 10 sept. 2019, 15:55

Bonjour Claire

Donc tu as la dernière version, il n'y a aucune raison que ça ne fonctionne pas.
Je te joins ton fichier original auquel j'ai ajouté la macro.

J'ai ajouté une gestion d'erreur : comme je t'ai expliqué, la macro ne s'exécute qu'à la sortie du contrôle. Il faut donc cliquer ailleurs, et en particulier, il faut cliquez dans le tableau car Word doit savoir de quel tableau il s'agit. En effet s'il y a plusieurs tableaux, ça va générer une erreur. Donc on part du principe que c'est le tableau où se trouve le curseur. Donc, si tu cliques hors tableau, ou aussi si la ligne ajoutée est toute seule (donc pas de ligne précédente, il y aura un message). Tu peux bien entendu modifier le texte des messages.
exemple colorer ligne précédente.dotm
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
m@rina

Claire
Posteur débutant
Posteur débutant
Messages : 5
Enregistré le : 04 sept. 2019, 09:40

Re: Mise en forme conditionnelle dans Word

Message non lu par Claire » 11 sept. 2019, 09:40

Bonjour Marina,

:merci:

Ce que je ne comprends pas, quand je copie ta macro dans mon document ça marche pas.... Le problème doit être moi :boulet: :mdr:
Je dois certainement ne pas faire une manip nécessaire. Ceci étant, grâce à ce que tu as fait (merci encore) j'ai contourné le problème en copiant mon document dans le tiens et ça marche impec.

Bravo et encore merci :)

Avatar du membre
m@rina
Administrateur
Administrateur
Messages : 1336
Enregistré le : 14 août 2009, 08:51
Contact :

Re: Mise en forme conditionnelle dans Word

Message non lu par m@rina » 11 sept. 2019, 14:40

Bonjour Claire,

Je pense que tu n'as pas dû nommer correctement la balise de la liste déroulante dans ton bloc de construction.
m@rina

Répondre