Note: The other languages of the website are Google-translated. Back to English

Comment insérer une liste déroulante à code couleur dans un tableau Word?

Supposons que j'ai un tableau dans mon document Word et que maintenant, je souhaite insérer une liste déroulante à code couleur dans une colonne du tableau. Cela signifie que lorsque je sélectionne une option dans la liste déroulante, la couleur de la cellule devient rouge et lorsque je sélectionne une autre option dans la liste déroulante, la couleur de la cellule devient verte comme illustré ci-dessous. Comment pourriez-vous résoudre ce travail dans un document Word?

doc déroulant à code couleur

Insérer une liste déroulante à code couleur dans un document Word avec le code VBA


Insérer une liste déroulante à code couleur dans un document Word avec le code VBA

Les étapes suivantes peuvent vous aider à terminer cette tâche selon vos besoins, tout d'abord, insérez la liste déroulante, puis appliquez la couleur de la liste déroulante. Veuillez faire comme ceci:

1. Sélectionnez une cellule du tableau dans laquelle vous souhaitez insérer la liste déroulante, puis cliquez sur Développeur > Contrôle du contenu de la liste déroulante icône, voir capture d'écran:

doc code couleur déroulant 1

2. La liste déroulante est insérée dans la cellule spécifique, puis cliquez sur Développeur > Propriétés, voir capture d'écran:

doc code couleur déroulant 2

3. Dans le Propriétés du contrôle du contenu boîte de dialogue, veuillez effectuer les opérations suivantes:

(1.) Entrez le nom du titre dans le Titre zone de texte;

(2.) Cliquez sur Ajouter bouton aller au Ajouter un choix dialogue;

(3.) Dans le Ajouter un choix boîte de dialogue, saisissez l'élément de la liste déroulante dans le Nom d'affichage zone de texte.

doc code couleur déroulant 3

4. Répétez l'étape 3 pour insérer d'autres éléments de liste déroulante selon vos besoins.

5. Après avoir créé la première liste déroulante, vous pouvez la copier et la coller dans d'autres cellules selon vos besoins. Voir la capture d'écran:

doc code couleur déroulant 4

6. Ensuite, vous devez appliquer un code VBA, maintenez la touche ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

7. Dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez Ce document du Projet-Projet volet pour ouvrir le mode, puis copiez et collez le code suivant dans le module vide.

Code VBA: Insérez la liste déroulante à code couleur dans le tableau d'un document Word:

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
    If ContentControl.Title = "Status" Then
        Select Case .Text
            Case "Complete"
                .Cells(1).Shading.BackgroundPatternColor = wdColorRed
            Case "In Progress"
                .Cells(1).Shading.BackgroundPatternColor = wdColorGreen
            Case "Not Start"
                .Cells(1).Shading.BackgroundPatternColor = wdColorBlue
            Case Else
                .Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
        End Select
    End If
End With
End Sub

doc code couleur déroulant 5

Notes: Dans le code ci-dessus, Statut est le nom du titre lorsque vous créez la liste déroulante, et Complété, En Cours, Ne démarre pas sont les éléments de la liste déroulante, vous pouvez les modifier par vous-même. Et vous pouvez également changer la couleur selon vos besoins.

8. Ensuite, enregistrez et fermez la fenêtre de code, maintenant, lorsque vous sélectionnez un élément dans la liste déroulante, sa couleur relative sera remplie avec la cellule, voir capture d'écran:

doc déroulant à code couleur


 


Outils de productivité Word recommandés

 

Kutools For Word - Plus de 100 fonctionnalités avancées pour Word, économisez 50% de votre temps

  • Les opérations compliquées et répétées peuvent être effectuées une seule fois en quelques secondes.
  • Insérez simultanément plusieurs images dans des dossiers dans un document Word.
  • Fusionner et combiner plusieurs fichiers Word dans des dossiers en un seul avec l'ordre souhaité.
  • Divisez le document actuel en documents séparés selon l'en-tête, le saut de section ou d'autres critères.
  • Convertissez des fichiers entre Doc et Docx, Docx et PDF, collection d'outils pour les conversions et la sélection courantes, etc.

 

Commentaires (44)
Noté 5 hors 5 · évaluations 1
Ce commentaire a été minimisé par le modérateur sur le site
Lorsque je quitte et rouvre le programme, je dois ressaisir le code VBA. Comment puis-je faire en sorte qu'il enregistre?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Pour enregistrer le code vba lors de la prochaine ouverture du fichier, vous devez enregistrer le fichier Word au format Word Macro-Enabled Document. S'il vous plaît essayez-le, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Salut, je viens de créer avec succès la liste déroulante et les couleurs comme conseillé. J'ai essayé d'ajouter une ligne supplémentaire, j'ai donc 4 vs 3 listes déroulantes. J'ai coupé et collé et changé mais aucune couleur ne s'affiche lorsque je sélectionne cette option, avez-vous des idées pour résoudre le problème ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Peter,
Tout d'abord, vous devez créer la liste déroulante dans le tableau, puis *** votre quatrième texte déroulant dans le code comme ci-dessous :

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
If ContentControl.Title = "Status" Then
Select Case .Text
Case "Complete" 'First drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorRed
Case "In Progress" 'Second drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Case "Not Start" 'Third drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Case "New Task" 'Fourth drop down item
.Cells(1).Shading.BackgroundPatternColor = wdColorYellow
Case Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
End Select
End If
End With
End Sub


S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
cette grille a fonctionné ! Merci. J'ai essayé d'appliquer le même code à une autre zone de contenu déroulante dans le même document et j'ai des problèmes. Je ne sais pas comment obtenir tweo dans la fenêtre VBA. J'obtiens 'erreur de compilation, nom ambigu détecté : Document_ContentControlOnExit'
Ce commentaire a été minimisé par le modérateur sur le site
Puis-je saisir des couleurs personnalisées ? (rvb)
Ce commentaire a été minimisé par le modérateur sur le site
Salut, merci pour cela. Existe-t-il un moyen de ne changer que la couleur du texte et non la cellule entière?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Shannon,
Pour changer la couleur du texte au lieu de la couleur d'arrière-plan, le code VBA ci-dessous peut vous aider, veuillez l'essayer, j'espère qu'il pourra vous aider !

Sous-document privé_ContentControlOnExit (ByVal ContentControl As ContentControl, Cancel As Boolean)
Avec ContentControl.Range
Si ContentControl.Title = "Statut" Alors
Sélectionnez Case .Text
Caisse "Complète"
.Cells(1).Range.Font.Color = wdColorRed
Affaire "En cours"
.Cells(1).Range.Font.Color = wdColorGreen
Cas "Ne démarre pas"
.Cells(1).Range.Font.Color = wdColorBlue
Case Else
.Cells(1).Range.Font.Color = wdColorAutomatic
End Select
Si fin
Terminer par
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Luttant ici pour appliquer cela comme un style plutôt qu'une couleur ou une nuance.
Ce commentaire a été minimisé par le modérateur sur le site
Puis-je modifier ce code pour qu'il mette en évidence n'importe quel choix de liste déroulante sans les lister tous?
Ce commentaire a été minimisé par le modérateur sur le site
Au lieu de couleurs, pourrions-nous utiliser des symboles ? comme si le symbole d'affichage 'terminé' avec le code de caractère 252, s'il n'est pas commencé, puis le symbole avec le code de caractère 88, etc. pouvez-vous partager le code vba en utilisant des symboles comme affichage plz?
Ce commentaire a été minimisé par le modérateur sur le site
Salut, c'est fantastique ! Existe-t-il un moyen de choisir parmi de nombreuses couleurs?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Sam,
Pour appliquer plus de couleur que vous aimez, vous devez utiliser le code ci-dessous et modifier la couleur RVB selon vos besoins :

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
    If ContentControl.Title = "Status" Then
        Select Case .Text
            Case "Complete"
                .Cells(1).Shading.BackgroundPatternColor = RGB(255, 0, 0)
            Case "In Progress"
                .Cells(1).Shading.BackgroundPatternColor = RGB(0, 255, 64)
            Case "Not Start"
                .Cells(1).Shading.BackgroundPatternColor = RGB(0, 0, 255)
            Case Else
                .Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
        End Select
    End If
End With
End Sub


S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Puis-je colorer toute la ligne correspondante au lieu d'une seule cellule ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Jéricho,
Le code ci-dessous peut vous aider à résoudre votre problème, veuillez l'essayer : (vous pouvez définir la couleur RVB selon vos besoins)

Sous-document privé_ContentControlOnExit (ByVal ContentControl As ContentControl, Cancel As Boolean)
Avec ContentControl.Range
Si ContentControl.Title = "Statut" Alors
Sélectionnez Case .Text
Caisse "Complète"
.Rows.Shading.BackgroundPatternColor = RVB (255, 0, 0)
Affaire "En cours"
.Rows.Shading.BackgroundPatternColor = RVB (0, 255, 64)
Cas "Ne démarre pas"
.Rows.Shading.BackgroundPatternColor = RVB (0, 0, 255)
Case Else
.Rows.Shading.BackgroundPatternColor = wdColorAutomatic
End Select
Si fin
Terminer par
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Salut, génial !!! Mais existe-t-il un moyen de changer la couleur/le texte d'une autre cellule dans la même ligne mais dans une colonne différente ? Par exemple : au lieu de modifier l'arrière-plan de "Complete", modifiez l'arrière-plan de "Project-001" . Aidez-moi s'il vous plaît. Merci d'avance
Ce commentaire a été minimisé par le modérateur sur le site
Salut, Jaimes,
Pour résoudre votre problème, veuillez appliquer le code ci-dessous :
Remarque : Dans le code, le numéro 1 dans le script Cells(1) est le numéro de colonne du tableau, vous pouvez le modifier selon vos besoins.

Sous-document privé_ContentControlOnExit (ByVal ContentControl As ContentControl, Cancel As Boolean)
Avec ContentControl.Range
Si ContentControl.Title = "Statut" Alors
Sélectionnez Case .Text
Caisse "Complète"
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorRed
Affaire "En cours"
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Cas "Ne démarre pas"
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Case Else
.Rows(1).Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
End Select
Si fin
Terminer par
End Sub

S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, existe-t-il un moyen de créer plusieurs listes déroulantes à code couleur dans un même document ? Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup d'avoir partagé ceci! Cependant, je me heurte à une bizarrerie bizarre. Parfois, lorsque je sélectionne un élément dans un menu déroulant, puis que je clique ailleurs dans le document pour qu'il applique la mise en forme, cela ne fonctionne pas. Il sélectionne le mot approprié dans le menu déroulant, mais il reste juste du texte noir normal. Je dois annuler avant de sélectionner quoi que ce soit, sélectionner à nouveau l'élément dans le menu déroulant, puis cliquer UNIQUEMENT dans un autre menu déroulant pour que la mise en forme s'applique. Des idées sur pourquoi il fait cela et comment je peux le réparer?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'ai suivi les étapes plusieurs fois mais les couleurs n'apparaissent pas du tout ?
Ce commentaire a été minimisé par le modérateur sur le site
Merci d'avoir fourni cela, c'est tellement utile! Cependant je suis tombé sur un bug. Lorsque je crée une nouvelle ligne dans le tableau sous une cellule contenant la liste déroulante, elle copie la couleur de la cellule ci-dessus dans cette cellule sans la liste déroulante. Si je copie et colle ensuite la liste déroulante et que je modifie l'option, cela ne change pas la couleur de la cellule. Quelqu'un peut-il aider?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

J'ai essayé de créer deux listes déroulantes de code de couleur dans un modèle Word, cependant, j'obtiens un message d'erreur indiquant "Nom ambigu détecté : Document_ContentControON EXIT. Pourriez-vous s'il vous plaît m'informer de ce que j'ai fait de mal?




Sous-document privé_ContentControlOnExit (ByVal ContentControl As ContentControl, Cancel As Boolean)

Avec ContentControl.Range

Si ContentControl.Title = "Action corrective" Alors

Sélectionnez Case .Text

Cas "Action corrective nécessaire"

.Cells(1).Shading.BackgroundPatternColor = wdColorRed

Cas "Aucune autre action nécessaire"

.Cells(1).Shading.BackgroundPatternColor = wdColorGreen

Cas "Action corrective recommandée"

.Cells(1).Shading.BackgroundPatternColor = wdColorYellow

Case Else

.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic

End Select

Si fin

Terminer par

End Sub

Sous-document privé_ContentControlOnExit (ByVal ContentControl As ContentControl, Cancel As Boolean)

Avec ContentControl.Range

Si ContentControl.Title = "Action corrective pour le cd" Alors

Sélectionnez Case .Text

Cas "Utiliser une nouvelle courbe Cd"

.Cells(1).Shading.BackgroundPatternColor = wdColorRed

Cas "Utiliser une courbe Cd existante"

.Cells(1).Shading.BackgroundPatternColor = wdColorGreen

Cas "Vérifier le réglage et la sonde"

.Cells(1).Shading.BackgroundPatternColor = wdColorYellow

Case Else

.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic

End Select

Si fin

Terminer par


Un grand merci d'avance pour votre soutien.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour - merci beaucoup pour cela. Comment puis-je incorporer du code pour changer la couleur de la police en fonction de la sélection dans la liste déroulante.
Ce commentaire a été minimisé par le modérateur sur le site
le code postal d'origine fonctionnait très bien, mais je veux le *** dans une autre liste déroulante, lorsque j'essaie de *** le même code en VB avec une modification de la valeur dans la section "statut" de la ligne suivante :
Si ContentControl.Title = "Statut" Alors
ça ne marche pas?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, joni, S'il y a deux ou plusieurs tableaux de listes déroulantes, il vous suffit de copier et coller le code ci-dessous dans le code d'origine et de modifier la référence du texte en fonction de vos besoins.
Si ContentControl.Title = "Statut" Alors
Sélectionnez Case .Text
Caisse "Complète"
.Cells(1).Shading.BackgroundPatternColor = wdColorRed
Affaire "En cours"
.Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Cas "Ne démarre pas"
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Case Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
End Select
Si fin


Le code complet devrait être celui-ci : Sous-document privé_ContentControlOnExit (ByVal ContentControl As ContentControl, Cancel As Boolean)
Avec ContentControl.Range
Si ContentControl.Title = "Statut" Alors
Sélectionnez Case .Text
Caisse "Complète"
.Cells(1).Shading.BackgroundPatternColor = wdColorRed
Affaire "En cours"
.Cells(1).Shading.BackgroundPatternColor = wdColorGreen
Cas "Ne démarre pas"
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Case Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
End Select
Si fin
Si ContentControl.Title = "Nom" Alors
Sélectionnez Case .Text
Affaire "Lucie"
.Cells(1).Shading.BackgroundPatternColor = wdColorOrange
Affaire "Skyyang"
.Cells(1).Shading.BackgroundPatternColor = wdColorYellow
Coffret "Rubis"
.Cells(1).Shading.BackgroundPatternColor = wdColorBlue
Case Else
.Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
End Select
Si fin
Terminer par
End SubVeuillez essayer, j'espère que cela pourra vous aider !
Ce commentaire a été minimisé par le modérateur sur le site
Cela a fonctionné fantastique, merci pour votre aide.
J'essaie également de trouver une méthode pour ce qui suit:
J'ai deux cellules qui ont une valeur numérique. Dans une cellule séparée, je souhaite multiplier ces valeurs, si le résultat se situe dans trois plages numériques définies, je souhaite que la cellule affiche du texte en fonction des valeurs de la plage.
Si la gravité du risque d'un danger est de 3
Ce commentaire a été minimisé par le modérateur sur le site
C'était super utile et je l'ai mis en œuvre avec succès. Je me demande comment je peux aussi changer la couleur du texte sur la même ligne, j'ai déjà changé la couleur d'arrière-plan. Par exemple. la couleur de la ligne d'arrière-plan est rouge, mais je veux que le texte soit blanc et non noir ?
Ce commentaire a été minimisé par le modérateur sur le site
Super instruction - a parfaitement fonctionné ! Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Pouvez-vous attribuer un code couleur à la colonne suivante, au lieu de la colonne de la liste déroulante ? Par exemple, pas de code couleur dans la colonne "Statut" (juste des choix), mais code couleur dans la colonne adjacente ? Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Je peux faire fonctionner les couleurs avec la liste déroulante, mais seulement après avoir cliqué sur la balise "statut". La balise d'état peut-elle disparaître ? Comme je pense que ça n'a pas l'air bien quand le document est terminé
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés