Avoir la ligne de la cellule active en bas de page
Bonjour, voilà mon problème :
J'ai fait une macro ( évenement worksheet) qui est déclenchée lorsque "return" ou "enter" est tapé dans une cellule .
Cette macro effectue diverses opérations sur diverses cellules de la page puis, juste avant le end sub, elle sélectionne la cellule juste au dessous de la cellule à partir de laquelle la macro a été appelée ( comme l'aurait fait le return s'il n'avait pas été intercepté par l'évenement woksheet ).
Tout marche très bien sauf que j'ai un pb de positionnement de la ligne de la cellule active dans l'affichage de la page sur l'écran.
Je m'explique :
Dans un fichier Excel sans macro , le fonctionnement normal est le suivant :
Lorsque l'on se place sur une cellule quelconque placée sur une ligne située plutôt vers le haut de la page
Alors à chaque return , la cellule sélectionnée descend d'une ligne ( normal ) et on voit la ligne de cette cellule active qui descend dans l'affichage vu sur l"écran.
Et quand on arrive en bas de l'écran , alors un scroll automatique d'une ligne se produit pour garder la ligne de la cellule active affichée sur l'écran , à partir de ce moment la ligne de la cellule active reste donc affichée au bas de l'écran même si on tape plusieurs fois return. ( c'est le fonctionnement normal d'un fichier Excel )
Mon Pb est que lorsque je passe par ma macro , ça ne se passe pas comme cela : le scroll automatique commence non pas quand on arrive au bas de l'écran , il commence quand la ligne de la cellule active arrive au milieu de l'écran.
Comment faire pour avoir le fonctionnement normal ? c'est à dire que la ligne de la cellule active soit située en bas de l'écran et non au milieu. ( le but est d'avoir un maximum de lignes précédentes visibles à l'écran )
Merci d'avance si quelqu'un peut m'aider
Bonjour,
De toute façon il est impossible de déterminer avec certitude combien de lignes sont visible à l'écran. Cela dépend de nombreux critères la taille de l'écran, la hauteur des cellules, la taille de la fenêtre, l'affichage du ruban, de la barre d'état, de la barre de formule,de la barre d'en-tête, de l'affichage des onglets et du facteur de zoom. mébon on peut te faire une cote mal taillée au lieu d'afficher une quinzaine de ligne on va t'en afficher environ 25 ou 30 selon ta demande (à préciser), mais il te faut fournir la macro en question...
A+
Bonsoir Galopin01 ,
Merci pour ta réponse , mais je viens de trouver une solution qui marche :
Dans la solution qui ne marchait pas , à la fin de ma sub , je repositionnais la cellule active de cette façon : Range(POSITION_Retour_Pointage).Select
Dans la nouvelle solution, je me repositionne sur la même cellule mais de la façon suivante :
Range(POSITION_Retour_Pointage+2).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(1, 0).Select
Et ça marche, ne me demande pas pourquoi , je n'en sais rien , mais ça marche !
Encore merci pour ta réponse