• Comment générer du faux texte ?

  • Comment faire pour qu'une macro démarre toute seule ?

  • PowerPoint et les fichiers MP3

  • Mon clavier perso ou comment personnaliser son clavier

  • Comment attacher un modèle à un document ?

  • Comment insérer une image en fond de page?

  • Accentuer les majuscules

  • L'espace fine existe-t-elle dans Word ?

  • Bonjour les Quickparts, adieu les Insertions Auto !

  • A quoi sert l'ancre qui s'affiche quelquefois dans la marge gauche ?

  • Comment créer un bouton qui envoie le fichier en cours ?

 
 

 

Dans un document Word, une liste déroulante, par exemple une listes comme "OUI", "NON", "Je ne sais pas".

Lorsque l'on sélectionne une valeur, comment faire pour que cette dernière prenne une couleur particulière ?
Le "OUI" serait vert, le "NON" serait rouge, et enfin le "Je ne sais pas" serait noir.

contrôles de formulaire

Utilisation : Contrôles de liste de la barre d'outils Formulaires( Word 2000/2003), ou contrôles de formulaire hérité (Word 2007/2010)

On va créer cette macro qui se déclenchera automatiquement à la sortie du contrôle de formulaire. 

Sub couleurs()

ld = Selection.FormFields(1).DropDown.Value
ActiveDocument.Unprotect

Select Case ld
Case 1
Selection.Font.Color = wdColorGreen
Case 2
Selection.Font.Color = wdColorRed
Case 3
Selection.Font.Color = wdColorBlack
End Select
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True

End Sub

 

Pour que la macro se déclenche :

  • Double-cliquez sur chaque liste déroulante
  • Sous la rubrique Exécuter la macro, sélectionnez la macro en question dans la liste déroulante A la sortie.

 

Contrôles de contenu

Utilisation : Contrôles de contenu de liste déroulante - Word 2007/2010

Copiez cette macro et collez-la dans ThisDocument et non pas dans un module quelconque.


Private Sub document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
couleur = ContentControl.Range.Font.Color
Select Case ContentControl.Range.Text
 Case "oui"
 ContentControl.Range.Font.Color = wdColorGreen
 Case "non"
 ContentControl.Range.Font.Color = wdColorRed
 Case "je sais pas"
  ContentControl.Range.Font.Color = wdColorBlack
End Select
End Sub

 

 

Cette macro sera activée pour n'importe quelle liste de votre document. Si votre document comporte plusieurs listes et que vous souhaitez qu'une seule liste soit affectée par cette macro, il faut déterminer quelle est l'ID du contrôle Liste déroulante. Cet ID est unique et restera toujours le même. Pour connaître l'ID, copiez et collez la macro suivante dans un module normal. Sélectionnez ensuite votre liste déroulante, lancez cette petite macro et notez le résultat. Vous pourrez supprimer la macro ensuite :

Sub test()

MsgBox Selection.ContentControls(1).ID

End Sub

 

Modifiez maintenant la première macro en ajoutant une condition sur l'ID et en remplaçant 0000000000# par le résultat de la macro précédente :

 

Private Sub document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
If ContentControl.ID = 0000000000# Then
couleur = ContentControl.Range.Font.Color
Select Case ContentControl.Range.Text
 Case "oui"
 ContentControl.Range.Font.Color = wdColorGreen
 Case "non"
 ContentControl.Range.Font.Color = wdColorRed
 Case "je sais pas"
  ContentControl.Range.Font.Color = wdColorBlack
End Select

End If
End Sub

 

Nouveau sondage !

Les forums - Outlook ?

 
 
 

Statistiques

2861196
Aujourd'hui1868
Hier2042
Cette semaine3910
Ce mois-ci12082
Depuis janvier 20042861196
Compteur d'affichages des articles
5538865

A lire de toute urgence...

Qui est en ligne ?

Nous avons 48 invités et aucun membre en ligne