VBA: mettre en gras une partie de texte

Même si le formatage du texte n'est pas la chose la plus aisée dans Excel, il est quand même possible d'adapter l'apparence de vos documents à vos besoins.

Dans Excel même, on peut facilement formater même les différentes parties d'un texte dans une cellule. En VBA, il faut bricoler un peu pour y arriver. La question qui arrive le plus souvent concernant le formatage du texte est:

Comment mettre en gras une partie du texte d'une cellule en VBA?

Pour commencer: Si vous voulez tout simplement mettre en gras une cellule entière

Si vous êtes simplement à la recherche de comment on met une cellule en gras en VBA, sachez que le code est très simple:

Ce code mettra en gras la cellule ou la plage indiquée (ici la cellule B1), peu importe son contenu. Même si la cellule est vide, elle sera formatée en gras et si vous y mettez du contenu plus tard, il sera en gras.

VBA: formatter une partie du texte en gras

Maintenant on arrive au plus compliqué… Alors, comment obtenir le cas suivant en VBA?

VBA: mettre en gras une partie de texte d'une cellule

 

Réponse: Grâce à la classe Characters de VBA. Le code de base à utiliser est le suivant:

X est votre cellule, Y est le numéro de caractère où commence la partie en gras et Z est le nombre de caractères qui doivent être en gras.

Exemple: Si vous avez le texte "ceci est une promotion" dans la cellule "B1" et vous voulez mettre en gras le mot "promotion", l'instruction VBA ressemblera à ceci:

Ceci est le code VBA basique – pour pouvoir l'utiliser, vous devez connaître le numéro du caractère par lequel la partie formatée en gras commence ainsi que la longueur du texte qui doit être gras. Ce qui n'est pas très commode, ni très pratique. Mais il y a toujours une solution…

VBA: mettre en gras un mot spécifique dans le texte

Si vous voulez mettre en gras un mot (ou un groupe de mots) en particulier, vous pouvez procéder de la manière suivante:

X est votre cellule et "Y" est le mot (groupe de mots ou groupe de caractères) qui doit être formaté en gras.
Comme vous voyez, on va utiliser la fonction VBA InStr qui renvoie la position d'une chaine de caractères dans une autre et de la fonction Len.

L'exemple de "ceci est une promotion" va nous donner le code suivant:

Ce code VBA a l'avantage que vous ne devez pas vous préoccuper ni de la longueur de texte à formater en gras, ni à sa position dans le texte!

Si vous avez besoin d'utiliser cette fonctionnalité fréquemment, vous avez probablement intérêt à créer une fonction VBA spécifique à cette utilisation (une UDF – "User Defined Function") avec deux paramètres: la Range et le texte à formater…

Une astuce pour la fin

Dernière remarque: Vous pouvez utiliser cette méthode pour tous les types de formatage qui est disponible dans la classe Font : par exemple l'oblique, la couleur de texte, la taille du texte, le soulignement,…

Pour aller plus loin en VBA

Et pour terminer, voici quelques autres articles qui pourraient vous être utiles…

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

18 commentaires sur “VBA: mettre en gras une partie de texte”