Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
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.
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.