[VBA] reproduire le défilement horizontal Alt+PgDn

Le
JièL
Salutatousses,

je cherche en vba à reproduire le défilement horizontal qui correspond
aux touches Alt+PgDn (ou PgUp).

J'ai essayé ActiveWindow.LargeScroll ToRight:=1, ça fonctionne sauf que
ça ne déplace pas le pointeur de cellule et que
x¬tiveWindow.ScrollColumn donne la position précédente de la feuille
tant que la macro n'est pas terminée ; il semblerait que le
rafraichissement d'écran soit différé, même avec
Application.ScreenUpdating = True.

Bref, connaissez vous la commande ou l'astuce qui permet ce déplacement
latéral de la feuille ET du pointeur de cellule d'une page
horizontalement (la taille de la page étant bien entendu indéterminée).

Merci d'avance

--
JièL rameur en scrollage
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #26377423
salut JièL,

exemple avec la dernière cellule de la feuille, mais c'est possible avec
n'importe quel cellule

Application.Goto Cells.SpecialCells(xlCellTypeLastCell), scroll:=True

isabelle

Le 2015-11-12 05:35, JièL a écrit :
Salutatousses,

je cherche en vba à reproduire le défilement horizontal qui correspond aux
touches Alt+PgDn (ou PgUp).

J'ai essayé ActiveWindow.LargeScroll ToRight:=1, ça fonctionne sauf que ça ne
déplace pas le pointeur de cellule et que x¬tiveWindow.ScrollColumn donne la
position précédente de la feuille tant que la macro n'est pas terminée ; il
semblerait que le rafraichissement d'écran soit différé, même avec
Application.ScreenUpdating = True.

Bref, connaissez vous la commande ou l'astuce qui permet ce déplacement latéral
de la feuille ET du pointeur de cellule d'une page horizontalement (la taille de
la page étant bien entendu indéterminée).

Merci d'avance

JièL
Le #26377441
Bonjour Isabelle,

merci, mais... :-)
Désolé, c'est la page horizontale suivante que je voudrais atteindre,
exactement comme le fait le Alt+PgDn.

Je pose la question autrement... comment connaitre le n° (le nom) de la
colonne qui est juste après la dernière *actuellement* affichée ?

Un exemple : les colonnes 3 à 21 sont actuellement visibles, comme je
sais, via VBA, que la prochaine est la 22 ?

Peu importe le contenu, peu importe la largeur des colonnes, ça doit
fonctionner à tout les coups

Encore merci
--
JièL

Le 12/11/2015 15:52, isabelle a écrit :
salut JièL,

exemple avec la dernière cellule de la feuille, mais c'est possible avec
n'importe quel cellule

Application.Goto Cells.SpecialCells(xlCellTypeLastCell), scroll:=True

isabelle

Le 2015-11-12 05:35, JièL a écrit :
Salutatousses,

je cherche en vba à reproduire le défilement horizontal qui correspond
aux
touches Alt+PgDn (ou PgUp).

J'ai essayé ActiveWindow.LargeScroll ToRight:=1, ça fonctionne sauf
que ça ne
déplace pas le pointeur de cellule et que x¬tiveWindow.ScrollColumn
donne la
position précédente de la feuille tant que la macro n'est pas terminée
; il
semblerait que le rafraichissement d'écran soit différé, même avec
Application.ScreenUpdating = True.

Bref, connaissez vous la commande ou l'astuce qui permet ce
déplacement latéral
de la feuille ET du pointeur de cellule d'une page horizontalement (la
taille de
la page étant bien entendu indéterminée).

Merci d'avance

DanielCo
Le #26377447
Bonjour,
Var = Cells(1, Split(ActiveWindow.VisibleRange.Address, "$")(3)).Column+1
Daniel
JièL avait énoncé :
Bonjour Isabelle,

merci, mais... :-)
Désolé, c'est la page horizontale suivante que je voudrais atteindre,
exactement comme le fait le Alt+PgDn.

Je pose la question autrement... comment connaitre le n° (le nom) de la
colonne qui est juste après la dernière *actuellement* affichée ?
isabelle
Le #26377457
la dernière *actuellement* affichée ?



heu... affichée ou renseignée?
voila pour l'après dernière renseignée:

Sub Macro1()
LastColumn = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1

Application.Goto Cells(1, LastColumn), scroll:=True
End Sub

isabelle
isabelle
Le #26377456
... et un p'tit résumé pour les autres,

Sub Goto_LastColumn()
LastColumn = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1
Application.Goto Cells(1, LastColumn), scroll:=True
End Sub

Sub Goto_LastRow()
LastRow = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
Application.Goto Cells(LastRow, 1), scroll:=True
End Sub

Sub Goto_LastCell()
Application.Goto Cells.SpecialCells(xlCellTypeLastCell), scroll:=True
End Sub

isabelle
DanielCo
Le #26377492
Ou, moins délirant :
With ActiveWindow.VisibleRange
Var = .Column + .Columns.Count
End With
Daniel
JièL a pensé très fort :
Bonjour Isabelle,

merci, mais... :-)
Désolé, c'est la page horizontale suivante que je voudrais atteindre,
exactement comme le fait le Alt+PgDn.

Je pose la question autrement... comment connaitre le n° (le nom) de la
colonne qui est juste après la dernière *actuellement* affichée ?

Un exemple : les colonnes 3 à 21 sont actuellement visibles, comme je sais,
via VBA, que la prochaine est la 22 ?

Peu importe le contenu, peu importe la largeur des colonnes, ça doit
fonctionner à tout les coups

Encore merci
--
JièL

Le 12/11/2015 15:52, isabelle a écrit :
salut JièL,

exemple avec la dernière cellule de la feuille, mais c'est possible avec
n'importe quel cellule

Application.Goto Cells.SpecialCells(xlCellTypeLastCell), scroll:=True

isabelle

Le 2015-11-12 05:35, JièL a écrit :
Salutatousses,

je cherche en vba à reproduire le défilement horizontal qui correspond
aux
touches Alt+PgDn (ou PgUp).

J'ai essayé ActiveWindow.LargeScroll ToRight:=1, ça fonctionne sauf
que ça ne
déplace pas le pointeur de cellule et que x¬tiveWindow.ScrollColumn
donne la
position précédente de la feuille tant que la macro n'est pas terminée
; il
semblerait que le rafraichissement d'écran soit différé, même avec
Application.ScreenUpdating = True.

Bref, connaissez vous la commande ou l'astuce qui permet ce
déplacement latéral
de la feuille ET du pointeur de cellule d'une page horizontalement (la
taille de
la page étant bien entendu indéterminée).

Merci d'avance
JièL
Le #26377613
Le 12/11/2015 17:47, DanielCo a écrit :
Ou, moins délirant :
With ActiveWindow.VisibleRange
Var = .Column + .Columns.Count
End With
Daniel



Merci Daniel, ça le fait très bien et en moins délirant en plus ;-)

--
JièL des lit reur
JièL
Le #26377612
Le 12/11/2015 16:49, isabelle a écrit :
la dernière *actuellement* affichée ?



heu... affichée ou renseignée?



Affichée Isa

voila pour l'après dernière renseignée:

Sub Macro1()
LastColumn = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1

Application.Goto Cells(1, LastColumn), scroll:=True
End Sub



Ce peut servir, merci

--
JièL a fich(i)er
Publicité
Poster une réponse
Anonyme