Dans ce didacticiel, nous allons apprendre à utiliser Visual Basic pour Applications (VBA) pour modifier la taille et le style du texte dans une cellule Excel en fonction du contenu de la cellule. Ce tutoriel s'applique à Excel 365, 2021, 2019 et 2016.
Préliminaires
Si vous débutez dans le développement d'Excel VBA, je vous recommande de consulter notre introduction aux macros Excel VBA avant de suivre le didacticiel.
Avant de commencer à coder, vous devez activer votre onglet développeur sur Excel dans le ruban, sinon vous ne pourrez pas accéder à votre éditeur Visual Basic.
Modifier les propriétés de texte de votre cellule Excel avec VBA
Définir votre feuille de calcul
Nous allons commencer par définir une feuille de calcul Excel que nous utiliserons comme exemple. N'hésitez pas à l'utiliser pour suivre ce tutoriel.
- Ouvrez Microsoft Excel et créez un nouveau classeur Excel activé par macro ( .xlsm ) nommé Excel_Macros.xlsm
- Enregistrez votre feuille de calcul dans votre lecteur local.
- Dans la feuille de calcul Sheet1 , continuez et ajoutez le tableau ci-dessous :

- Maintenant, depuis le ruban, appuyez sur Formules .
- Appuyez ensuite sur Définir le nom .
- Définissez une plage nommée sur laquelle vous appliquerez votre code VBA comme indiqué ci-dessous et appuyez sur OK .
![Comment définir la couleur de la police du texte Excel avec VBA ? Comment définir la couleur de la police du texte Excel avec VBA ?]()
Utilisez la propriété Cell.Font VBA pour modifier la couleur et le style de la police
- Passez à l' onglet Développeur .
- Ensuite, allez-y et appuyez sur le bouton Visual Basic .
- Dans le côté gauche de l' Explorateur de projets , mettez en surbrillance le projet Excel_Macros.xlsm , puis appuyez sur Insérer et sélectionnez Module .
- Un nouveau module VBA nommé Module1 sera créé.
- Allez-y et collez le code suivant dans le module nouvellement créé :
Sub Color_Cell_Text_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Completion_Status")
'loop through all cells in the range
For Each MyCell In StatusRange
StatValue = MyCell.Value
'modify the cell text values as needed.
Select Case StatValue
'green
Case "Progressing"
With MyCell.Font
.Color = RGB(0, 255, 0)
.Size = 14
.Bold = True
End With
'orange
Case "Pending Feedback"
With MyCell.Font
.Color = RGB(255, 141, 0)
.Size = 14
.Bold = True
End With
'red
Case "Stuck"
With MyCell.Font
.Color = RGB(255, 0, 0)
.Size = 14
.Bold = True
End With
End Select
Next MyCell
End Sub
- Appuyez sur le bouton Enregistrer dans votre éditeur Visual Basic.
- Maintenant, appuyez sur Exécuter , puis sélectionnez Exécuter sous/UserForm (ou appuyez simplement sur F5).
- Accédez à votre feuille de calcul Sheet1 et notez les modifications. Vos entrées de tableau se sont vu attribuer plusieurs codes de couleur en fonction de leur texte (à l'aide de la fonction de couleur RVB), et nous avons également défini le texte en gras et augmenté sa taille.
![Comment définir la couleur de la police du texte Excel avec VBA ? Comment définir la couleur de la police du texte Excel avec VBA ?]()
- Si vous n'avez pas enregistré votre code, appuyez sur le bouton Enregistrer (ou Ctrl+S), puis enregistrez également votre classeur.
Accédez à votre macro VBA
- Notez que votre code est toujours disponible pour que vous puissiez l'exécuter à partir de la commande Macros située dans l'onglet Affichage (ou alternativement dans Développeur | Macros)
![Comment définir la couleur de la police du texte Excel avec VBA ? Comment définir la couleur de la police du texte Excel avec VBA ?]()
Bonus : style de cellule
Excel offre la possibilité de créer des « styles » de cellules. Les styles peuvent être trouvés dans le Ruban d'accueil > Styles :
![styles de police Excel VBA]()
Les styles vous permettent d'enregistrer le formatage de cellule souhaité. Attribuez ensuite ce style à une nouvelle cellule et tout le formatage de la cellule est instantanément appliqué. Y compris la taille de la police, la couleur des cellules, l'état des protections des cellules et tout ce qui est disponible dans le menu de formatage des cellules :
![menu de formatage des cellules Excel]()
Personnellement, pour la plupart des modèles sur lesquels je travaille, je crée généralement un style de cellule « Entrée » :
Range("a1").Style = "Entrée"
En utilisant des styles, vous pouvez également identifier facilement les types de cellules sur votre feuille de calcul. L'exemple ci-dessous parcourra toutes les cellules de la feuille de calcul et modifiera n'importe quelle cellule avec Style = « Input » en « InputLocked » :
Dim Cell comme plage
Pour chaque cellule dans ActiveSheet.Cells
Si Cell.Style = "Entrée" puis Cell.Style = "InputLocked"
Fin si
Cellule suivante