Création de boutons exposant et indice (Microsoft Excel)
Lorsque vous modifiez une cellule dans Excel, vous avez accès à plusieurs boutons de la barre d’outils de mise en forme qui peuvent faciliter la mise en forme de la cellule. Par exemple, vous pouvez utiliser les outils Gras ou Italique pour modifier ces deux attributs pour tout texte sélectionné dans une cellule. À un moment donné, vous souhaiterez peut-être créer d’autres boutons de barre d’outils pour gérer d’autres mises en forme, telles que l’application d’un exposant ou d’un indice.
Excel, cependant, ne vous permet pas de créer vos propres outils de mise en forme et de les rendre accessibles lors de l’édition d’une cellule. En effet, Excel «désactive» toutes les macros définies par l’utilisateur pendant que vous effectuez l’édition.
Il ne vous reste plus qu’à formater le contenu de la cellule via Format | Cellules, ou en appuyant sur Ctrl + 1 pour afficher directement la boîte de dialogue Format de cellule.
Il existe cependant un moyen sournois que vous pouvez utiliser pour créer vos propres outils de mise en forme. Cela implique l’utilisation de formulaires utilisateur et de VBA pour créer votre propre «boîte de dialogue» de mise en forme. (Je sais – ce n’est pas vraiment une boîte de dialogue, mais un formulaire.) Créer votre propre formulaire utilisateur n’est pas très difficile, mais ce n’est pas pour les faibles de cœur quand il s’agit de macros. Suivez ces étapes pour créer votre propre formulaire:
-
Appuyez sur Ctrl + F11 pour afficher l’éditeur VBA.
-
Dans l’éditeur VBA, choisissez Formulaire utilisateur dans le menu Insertion. Un nouveau formulaire utilisateur vierge s’affiche, ainsi que la boîte à outils du formulaire.
-
À l’aide des contrôles de la boîte à outils du formulaire, ajoutez trois contrôles CommandButton en haut du formulaire.
-
Modifiez les propriétés du contrôle CommandButton gauche afin que son nom soit btnSuper et sa légende en exposant.
-
Modifiez les propriétés du contrôle CommandButton central afin que son nom soit btnSub et sa légende soit l’indice.
-
Modifiez les propriétés du contrôle CommandButton droit afin que son nom soit btnNormal et sa légende soit normale.
-
Juste sous les trois boutons, ajoutez un contrôle TextBox. Vous n’avez pas besoin de modifier les propriétés de ce contrôle.
-
Juste sous le contrôle TextBox, ajoutez un quatrième contrôle CommandButton.
-
Modifiez les propriétés de ce dernier contrôle CommandButton afin que son nom soit btnExit et sa légende soit Exit.
C’est ça; vous avez créé votre formulaire utilisateur et vous êtes prêt à associer le code de macro aux contrôles que vous venez de placer. Avec le formulaire utilisateur sélectionné, appuyez sur F7 pour afficher la fenêtre Code pour le formulaire. La fenêtre peut contenir une ou deux lignes de code généré automatiquement. Remplacez-le par le code suivant:
Private Sub UserForm_Activate() TextBox1.Text = ActiveCell.Formula End Sub
Private Sub btnSuper_Click() Dim intStart As Integer Dim intLength As Integer intLength = TextBox1.SelLength If intLength > 0 Then intStart = TextBox1.SelStart + 1 ActiveCell.Characters(intStart, intLength).Font.Superscript = True End If End Sub
Private Sub btnSub_Click() Dim intStart As Integer Dim intLength As Integer intLength = TextBox1.SelLength If intLength > 0 Then intStart = TextBox1.SelStart + 1 ActiveCell.Characters(intStart, intLength).Font.Subscript = True End If End Sub Private Sub btnExit_Click() Unload UserForm1 End Sub
Private Sub btnNormal_Click() Dim intStart As Integer Dim intLength As Integer intLength = TextBox1.SelLength If intLength > 0 Then intStart = TextBox1.SelStart + 1 ActiveCell.Characters(intStart, intLength).Font.Superscript = False ActiveCell.Characters(intStart, intLength).Font.Subscript = False End If End Sub
Fermez la fenêtre Code du formulaire utilisateur et fermez la fenêtre du formulaire elle-même. Vous devez maintenant créer une macro très courte qui affichera le formulaire utilisateur réel. Cette macro est créée de la même manière que toute autre macro Excel et devrait ressembler à ceci:
Sub DoForm() UserForm1.Show End Sub
Vous pouvez maintenant fermer la fenêtre de l’éditeur VBA. Pour utiliser la macro, sélectionnez la cellule que vous souhaitez modifier, puis exécutez la macro DoForm. Excel affiche votre formulaire utilisateur, qui contient le texte dans la cellule sélectionnée.
Vous pouvez ensuite sélectionner du texte dans le formulaire utilisateur et utiliser les boutons (Exposant, Indice et Normal) pour modifier la mise en forme du contenu réel de la cellule. La macro affecte le contenu de la cellule, pas le contenu du formulaire utilisateur. Ainsi, il est utile de pouvoir voir à la fois la cellule sélectionnée et le formulaire utilisateur sur l’écran en même temps.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (1945) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.