Création d’un bouton macro flottant (Microsoft Excel)
Leah aimerait un bouton flottant avec une macro assignée. Ainsi, lorsqu’elle se déplace vers la gauche, la droite, le haut ou le bas, le bouton reste près de la cellule sur laquelle elle travaille. Leah se demande s’il existe un moyen d’ajouter un tel bouton dans Excel.
Il n’existe pas de moyen de le faire sans utiliser une macro pour contrôler l’emplacement du bouton. (Cela ne devrait pas être un gros problème car vous utilisez déjà au moins une macro dans le classeur – celle que le bouton flottant déclenche.)
Avant d’entrer dans les détails de la façon de procéder, vous voudrez vous demander si vous souhaitez vraiment utiliser cette approche. Par exemple, vous pouvez affecter votre macro à une touche de raccourci ou à un bouton de la barre d’outils d’accès rapide. L’une ou l’autre approche éliminerait le besoin de repositionner constamment votre bouton flottant.
Si vous voulez vraiment suivre l’itinéraire des boutons, créez votre bouton à l’écran et liez-le à votre macro. Ensuite, créez simplement un gestionnaire d’événements qui repositionne le bouton chaque fois que vous modifiez la cellule sélectionnée. Par exemple, supposons que le nom de votre bouton soit « Button 1 ». Dans ce cas, vous pouvez utiliser la macro suivante:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveSheet.Shapes("Button 1") .Top = Target.Offset(1).Top .Left = Target.Offset(, 1).Left End With End Sub
N’oubliez pas qu’il s’agit d’un gestionnaire d’événements, il doit donc être placé dans la fenêtre de code de la feuille de calcul à laquelle il s’applique. Il en résulte que le bouton est déplacé pour toujours être près du coin inférieur droit de la cellule sélectionnée.
Il convient également de noter qu’il existe deux façons de créer un bouton de macro: soit en tant que contrôle Active X, soit en tant que contrôle hérité, non Active X. L’approche ci-dessus fonctionne très bien si vous utilisez le type de bouton hérité. Si, cependant, vous utilisez un contrôle Active X, alors vous voudrez changer un peu la macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveSheet.OLEObjects("CommandButton1") .Top = Target.Offset(1).Top .Left = Target.Offset(, 1).Left End With End Sub
Notez que le seul changement concerne l’objet auquel il est fait référence. Avec le gestionnaire d’événements approprié en place, chaque fois que vous modifiez la cellule sélectionnée à l’écran, le bouton se repositionne juste en bas à droite de la cellule sélectionnée. Donc, ce n’est pas un vrai « flottant »
bouton qui plane au même endroit tout le temps. Cela devrait être correct dans la situation de Leah, car elle voulait que le bouton soit près de la cellule dans laquelle elle travaille (la cellule sélectionnée), pas de la cellule qu’elle visualise (comme lorsqu’elle fait défiler en utilisant les barres de défilement).
_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 (13544) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.