Comment insérer un bouton pour remonter tout en haut d’une feuille de calcul sur Excel

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Aujourd’hui, je vous propose un petit tutoriel VBA dans lequel nous mettre en place un bouton placé en bas à droite de la fenêtre Excel qui permettra de remonter tout en haut de la feuille de calcul en un simple clic.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

1. Présentation

Lorsque l’on travaille sur de grandes feuilles de calcul Excel, il peut arriver que nous ayons à scroller de nombreuses fois, notamment pour remonter tout en haut de la page.

Pour simplifier cette opération, nous allons vouloir mettre en place un bouton qui puisse permettre en un seul clic de remonter tout en haut de la feuille, un peu comme ce que nous pouvons utiliser quotidiennement sur de très nombreux sites internet :

Excel formation - ScrollToTop - 01

 

2. Création du bouton

La première étape va consister à insérer le bouton sur la feuille de calcul.

Pour cela, nous allons simplement insérer une image représentant une flèche pointant vers le haut (Menu Insertion > Image) :

Excel formation - ScrollToTop - 02

Une fois l’image correctement insérée sur la feuille, nous pouvons éventuellement la redimensionner et la placer en bas, à droite de la fenêtre :

Excel formation - ScrollToTop - 03

Si nous le souhaitons, nous pouvons supprimer une couleur dans l’image pour que l’image prenne la forme du cercle.

Pour cela, nous cliquons sur l’image pour faire apparaître le menu « Mise en forme », et nous nous rendons dans le menu Couleur > Couleur transparente :

Excel formation - ScrollToTop - 04

Le curseur de la souris prend alors la forme d’une petite pipette, il suffit alors de cliquer sur la couleur à faire disparaître :

Excel formation - ScrollToTop - 05

Nous pouvons encore modifier la couleur du bouton en nous rendant à nouveau dans le menu Couleur, et en choisissant l’une des teintes proposées.

Excel formation - ScrollToTop - 06

Et voilà, notre bouton est maintenant terminé, nous allons pouvoir lui affecter une macro très simple qui va permettre de remonter automatiquement tout en haut de la feuille de calcul.

Pour cela, nous effectuons un clic-droit sur l’image > Affecter une macro :

Excel formation - ScrollToTop - 07

Dans la fenêtre qui s’affiche, nous saisissons un nom à donner à la macro (par exemple « remonter »), puis nous cliquons sur le bouton « Nouvelle » :

Excel formation - ScrollToTop - 08

Lorsque nous validons en appuyant sur le bouton « Nouvelle », Excel lance VBE, qui est l’éditeur de code intégré dans les applications de la suite Office et qui permet de coder les macro-commandes :

Excel formation - ScrollToTop - 09

La macro « remonter » est insérée automatiquement dans le Module1, lui aussi ajouté automatiquement.

Pour cela, il suffit simplement d’utiliser la propriété ScrollRow de l’objet ActiveWindow, et de lui donner la valeur « 1 » :

Sub remonter()
    ActiveWindow.ScrollRow = 1
End Sub

À ce moment-là, nous pouvons maintenant tester le bouton en scrollant vers le bas, puis en cliquant sur le bouton :

Excel formation - ScrollToTop - 10

Maintenant que le bouton est terminé et fonctionnel, il va nous rester une opération à mettre en place, qui va consister à faire en sorte que le bouton reste systématiquement en bas à droite de la fenêtre.

 

3. Fixer la position du bouton

Pour fixer correctement la position du bouton en bas à droite de la fenêtre, nous allons commencer par donner lui donner un nom, ce qui nous permettra ensuite de pouvoir manipuler l’image et notamment la déplacer.

Pour donner un nom à cette image, nous cliquons dessus pour faire apparaître à nouveau le menu Mise en forme dans le ruban.

Sauf que maintenant que nous avons affecté une macro sur cette image, nous ne pouvons pas nous contenter de cliquer dessus, ce qui aura pour effet de faire remonter la fenêtre…

L’astuce consiste alors de cliquer sur l’image en utilisant le clic-droit de la souris :

Excel formation - ScrollToTop - 11

Depuis le menu mise en forme, nous cliquons sur le bouton Volet de Sélection qui permet de paramétrer les différents objets de la feuille :

Excel formation - ScrollToTop - 12

À partir de là, nous pouvons renommer l’objet (« Top ») :

Excel formation - ScrollToTop - 13

Cela étant fait, nous allons pouvoir créer la macro « placerBouton » en revenant dans VBE (en dessous de la macro remonter) :

Excel formation - ScrollToTop - 14

La première chose à faire pour pouvoir déplacer le bouton va être de déterminer la position de la dernière cellule affichée à l’écran.

Pour cela, nous pouvons utiliser la propriété VisibleRange de l’objet ActiveWindow, qui permet de récupérer un objet de type Range dans lequel seront insérées toutes les cellules affichées !

Nous commençons donc par stocker ces cellules dans un objet que nous allons appeler r (pour Range) :

    Dim r As Range
    Set r = ActiveWindow.VisibleRange 

Maintenant, nous allons modifier cet objet pour réduire la plage uniquement à la seule dernière cellule affichée à l’écran :

    Dim r As Range
    Set r = ActiveWindow.VisibleRange
    Set r = r.Cells(r.Rows.Count, r.Columns.Count) 

Il existe plusieurs méthodes pour arriver à nos fins, la plus simple étant d’utiliser la fonction Cells qui permet de sélectionner une cellule incluse dans une plage en donnant ces coordonnées en argument

Il ne reste plus qu’à modifier les coordonnées de l’objet Top (il s’agit d’un objet Excel Shape) :

    With ActiveSheet.Shapes("top")
        .Top = r.Top
        .Left = r.Left
    End With

Ici, nous plaçons l’objet aux mêmes coordonnées que la dernière cellule affichée.

Nous pouvons lancer la macro pour nous rendre compte que l’image… a pratiquement disparu :

Excel formation - ScrollToTop - 15

Pour la faire apparaître, il suffit alors d’effectuer un décalage :

    With ActiveSheet.Shapes("Top")
        .Top = r.Top - 100
        .Left = r.Left - 100
    End With

Bien entendu, le décalage va dépendre de la taille de l’image et des cellules de la feuille.

Maintenant, pour que l’image se replace automatiquement lors du scroll, nous pouvons opter pour deux manières possibles :

  • Soit utiliser l’évènement WorkSheet_SelectionChange pour relancer la macro à chaque fois que nous sélectionnons l’une des cellules de la feuille,
  • Soit utiliser un Timer pour relancer régulièrement la macro

La première méthode étant la plus simple, c’est celle-ci que nous allons découvrir ici (mais si vous souhaitez que je vous présente également la seconde méthode, n’hésitez pas à m’en faire part)

Donc, nous allons créer cet évènement, qui permet comme nous l’avons vu dans le chapitre dédié de la formation sur l’apprentissage du langage VBA, de lancer une série d’instructions, dès que quelque chose s’exécute sur une feuille de calcul, ou un classeur.

Pour créer cet évènement, nous revenons dans VBA, puis plus spécifiquement dans le module de feuille en double cliquant sur celui-ci :

Excel formation - ScrollToTop - 16

Puis, nous utilisons les menus déroulant pour sélectionner respectivement Worksheet, puis SelectionChange :

Excel formation - ScrollToTop - 17

Il ne reste plus ensuite, qu’à appeler la macro-commandes placerBouton :

Excel formation - ScrollToTop - 18

 

4. En bonus : créer un second bouton pour descendre sur la dernière ligne

Maintenant que nous avons comment ce bouton, nous pouvons facilement insérer un second bouton qui permettra cette fois-ci de descendre sur la dernière ligne de la feuille.

Pour cela, nous commençons par créer une nouvelle macro :

Sub descendre()
    ActiveWindow.ScrollRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
End Sub

Puis nous affectons cette macro sur le deuxième bouton :

Excel formation - ScrollToTop - 18

Pour finir, nommons le bouton Bottom, et nous adaptons la macro pour en modifier l'emplacement :

    With ActiveSheet.Shapes("Bottom")
        .Top = r.Top - 100
        .Left = r.Left - 180
    End With

Excel formation - ScrollToTop - 18



Articles qui pourraient vous intéresser

Comment remplir automatiquement des cellules d'un tableau Excel avec la complétion automatique
Comment regrouper (ou pas !) les dates d’un tableau croisé dynamique (TCD) sur Excel ?
Comment connecter Excel sur Internet, sans VBA ?
Comment traduire automatiquement des fonctions Excel dans leur version originale ?
Comment analyser les résultats d’un sondage ou questionnaire avec Excel ?
Comment utiliser la fonction SOMME.SI pour effectuer des recherches sur des textes sur Excel ?
Comment calculer et étudier des écarts budgétaires avec Excel ?
Comment verrouiller et protéger un objet (graphique, image, zone de texte…) sur Excel ?
Comment formater des dates correctement dans Excel ?
Comment protéger le formatage des cellules tout en autorisant la saisie de données dans Excel ?
Comment transformer une photo en tableau Excel ?
Comment créer un publipostage automatique avec Excel ? (sans Word !)

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.