Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

8 réponses
Avatar
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=ActiveWindow.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

8 réponses

Avatar
isabelle
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

Avatar
JièL
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

Avatar
DanielCo
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 ?
Avatar
isabelle
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
Avatar
isabelle
... 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
Avatar
DanielCo
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
Avatar
JièL
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
Avatar
JièL
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