Imiter les petites majuscules dans Excel (Microsoft Excel)
Conrad aimerait imiter la capacité «petites majuscules» de Word dans Excel. La seule façon pour lui de le faire est de développer une macro qui parcourt chaque caractère d’une cellule. Si le caractère est en minuscules et 11 pt, la macro doit changer le caractère en majuscule 9 pt.
Si le caractère est en majuscule (ou pas une lettre), il ne devrait pas être affecté. Le problème est que Conrad ne sait pas comment affecter le formatage des caractères individuels dans la cellule de la manière décrite.
Lorsque vous utilisez une macro pour n’affecter que certains caractères de la cellule, il est bon de se rappeler que chaque cellule possède sa propre collection de caractères qui peut être consultée et modifiée. Chaque élément de la collection représente, comme vous pouvez vous y attendre, un seul caractère dans la cellule.
Cela nous permet de créer une macro qui examine ce qui se trouve actuellement dans la cellule et, si le caractère est actuellement en minuscules, de convertir uniquement ce caractère en majuscules et de réduire la taille de la police de ce caractère.
Sub SmallCaps() Dim rCell As Range Dim sWords As String Dim sCharacter As String Dim x As Long 'go through each cell in selection For Each rCell In Selection 'Don't want to work on formulas If Not rCell.HasFormula Then sWords = rCell.Value 'Get the cell contents For x = 1 To Len(sWords) 'Act on each letter sCharacter = Mid(sWords, x, 1) If sCharacter >= "a" And sCharacter <= "z" Then 'sCharacter is a lowercase letter With rCell.Characters(Start:=x, Length:=1) 'Decrease the font size by 2 .Font.Size = .Font.Size - 2 'Make character uppercase .Text = UCase(sCharacter) End With End If Next End If Next End Sub
Cette macro effectue son travail sur toutes les cellules sélectionnées lors de son exécution.
Il vérifie que la cellule ne contient pas de formule (les formules sont ignorées), puis il apporte toute modification aux caractères minuscules dans la cellule.
Il y a des inconvénients à utiliser une macro comme celle-ci, et vous devez en être conscient. Le plus gros inconvénient est qu’il modifie en fait ce qui se trouve dans les cellules. Lorsque c’est fait, les cellules contiendront tout le texte en majuscules, même si la mise en forme peut le faire ressembler à de petites majuscules. Cela signifie que vous pouvez rencontrer des problèmes lorsque vous exécutez ultérieurement la macro une deuxième fois, et les outils de vérification linguistique d’Excel (tels que le vérificateur d’orthographe) ne fonctionneront pas sur les mots qui sont tous en majuscules. (Excel peut cependant être configuré pour toujours vérifier l’orthographe de ces mots.)
En raison de ces inconvénients, vous souhaiterez peut-être adopter une approche totalement différente: changez la police que vous utilisez pour les cellules dans lesquelles vous voulez des petites majuscules. Si vous recherchez sur le Web des « polices en petites majuscules » (sans les guillemets), vous devriez être en mesure de trouver de nombreux candidats, et un bon nombre d’entre eux sont disponibles gratuitement. Voici un site qui peut avoir quelque chose que vous aimez:
https://www.fontsquirrel.com/fonts/list/tag/small%20caps
Téléchargez simplement la police de votre choix (à partir de cette source ou de toute autre source fiable) et installez-la sur votre système. Lorsque vous redémarrez Excel, la police doit être disponible pour la mise en forme des cellules. Les cellules formatées pour utiliser une telle police afficheraient le texte en petites majuscules, même si le contenu réel des cellules est un mélange de majuscules et de minuscules.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (653) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.