formateur informatique

Boutons de déplacements rapides en VBA Excel

Accueil  >  Bureautique  >  Excel  >  Excel VBA  >  Boutons de déplacements rapides en VBA Excel
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Naviguer dans un tableau Excel

Avec cette nouvelle astuce VBA Excel, nous allons découvrir comment naviguer facilement au travers des tableaux longs, avec des incréments de ligne variables à définir par l'utilisateur.

Boutons de déplacement dans un tableau long en VBA Excel

Sur l'exemple illustré par la capture, des flèches de déplacement sont positionnées au-dessus d'un tableau volumineux. L'utilisateur saisit une valeur d'incrément dans la zone de texte du milieu puis il sélectionne par exemple la première ligne du tableau. Dès lors, à chaque clic sur le bouton de la flèche du bas, c'est par exemple la rangée située 10 lignes plus bas qui est sélectionnée. Dans cette zone de texte, l'utilisateur peut choisir l'incrément qu'il souhaite. Bref, cette astuce démontre une méthode originale mais efficace pour déplacer rapidement le visuel dans un tableau long.



Classeur Excel à télécharger
Pour la démonstration de la technique, nous suggérons d'appuyer l'étude sur un classeur Excel abritant un tableau volumineux. Nous découvrons effectivement un tableau constitué de plusieurs centaines de lignes. Il recense des activités de sorties. Au-dessus, les deux flèches de déplacement encadrent bien une zone de saisie pour définir la longueur de chaque saut à observer en lignes.

Ces deux boutons de navigation sont déjà associés à des procédures de code et nous proposons de le constater.
  • Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel,
Sub navigationBas()

End Sub

Sub navigationHaut()
Range("A5").Select
End Sub


La première procédure (navigationBas) est vide pour l'instant. Elle est associée au bouton de la flèche vers le bas. C'est elle que nous devons implémenter pour faire défiler les lignes, sur une hauteur variable inscrite dans la zone de texte. La seconde est toute simple. Elle est associée au bouton de la flèche vers le haut. Elle se contente de sélectionner la cellule A5. Comme les volets sont figés au-dessus de cette ligne, un clic sur cette flèche remontera instantanément l'affichage tout en haut du tableau.



La déclaration des variables
Pour débuter et afin de maîtriser le déplacement de l'affichage, nous avons besoin de déclarer plusieurs variables. La première doit représenter la sélection au démarrage de la navigation, soit le point de départ. La seconde doit représenter la ligne à atteindre après le déplacement. La dernière doit récolter l'information numérique de déplacement saisie dans la zone de texte par l'utilisateur.
  • Dans la procédure navigationBas, ajouter les déclarations de variables suivantes :
Sub navigationBas()
Dim maSelection As Range: Dim ligneSel As Range
Dim increment As Integer


End Sub


Nos deux objets de plages de cellules sont fort naturellement typés comme des objets de type Range. La variable increment est quant à elle typée comme un entier classique afin de récolter la valeur numérique saisie par l'utilisateur.

Initialiser les plages de cellules
Dans l'enchaînement, nous devons initialiser ces plages. La première doit pointer sur la sélection active. La seconde doit pointer sur celle qui est repoussée plusieurs lignes plus bas, selon l'indication fournie par l'utilisateur. C'est donc par elle que nous devons commencer.
  • A la suite du code de la procédure, ajouter les instructions suivantes :
...
increment = Sheets("naviguer").dplcmt.Value + 1
Set maSelection = Selection
Set ligneSel = maSelection.Rows(increment)
...


Sur la feuille (Sheets) naviguer, nous récupérons la valeur (propriété Value) saisie dans la zone de texte nommée dplcmt. Nous lui ajoutons une unité du fait de la ligne de la sélection qui est considérée dans le déplacement. Dès lors, pour initialiser les variables objets, nous engageons l'instruction Set. Nous définissons la première sur l'objet VBA Selection qui représente la plage de cellules sélectionnées au moment de l'exécution. Grâce à sa propriété Rows ainsi héritée, nous faisons pointer l'objet ligneSel sur une rangée inférieure, en fonction de l'indication numérique passée en paramètre.



Atteindre une plage de cellules
Maintenant que la plage de destination est connue pour la navigation, nous devons l'atteindre. Et pour cela, c'est une petite nouveauté. L'objet VBA Application propose une méthode toute particulière et fort utile. Elle se nomme Goto. En lui passant les références de la cellule ou de la plage à atteindre en premier paramètre, elle déplace la sélection sur cette dernière. Comme nous avons figé les volets à partir de la ligne de titre, l'affichage se déplacera automatiquement pour suivre la sélection et organiser la navigation, tout en conservant présent les boutons de déplacement.
  • A la suite et fin du code, ajouter l'instruction VBA suivante :
Application.Goto ligneSel

C'est bien la plage de destination que nous passons en argument de la méthode Goto.
  • Enregistrer les modifications (CTRL + S) et basculer sur la feuille Excel (ALT + Tab),
  • Dans la zone de texte entre les flèches, saisir la valeur 100,
  • Sélectionner la ligne de titre du tableau, soit la plage de cellules B4:G4,
  • Puis, cliquer à plusieurs reprises sur le bouton de la flèche orientée vers le bas.
Comme vous pouvez l'apprécier, le déplacement est effectivement entrepris toutes les 100 lignes puisque dans le même temps l'affichage se déplace pour suivre le mouvement.

Se déplacer dans un tableau Excel avec des boutons VBA de navigation

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn