Scroll qui suit d'une feuille à l'autre

Bonjour,

Après quelques recherche sur le forum avec sans mots clés dans les message ou les sujets, je n'ai pas trouvé chaussure à mon fichier.

J'aimerai savoir s'il est possible lors que je scroll dans une feuille que ce scroll suive dans les autres feuilles ?

D'avance merci pour votre aide.

Saphir

Bonjour

On peut afficher plusieurs fenêtres sur un même classeur et synchroniser l'affichage de 2 fenêtres affichant chacune par exemple un onglet différent.

A part cela, VBA peut le faire mais quel est l'objectif opérationnel ?

Bonjour Chris,

Tout d'abord merci pour ta première réponse.

L'idée est de pouvoir comparer le même tableau présent sur chaque feuille simplement en navigant d'une feuille à l'autre sans scroller comme un dingue à chaque changement de page.

J'aimerai (par exemple), lorsque je suis sur la feuille du moi de mai, et que je suis sur un tableau, pouvoir aller sur la feuille d'avril et arriver sur le même tableau sans avoir à faire de scroll.

L'objectif est de gagner un temps précieux !

Et pour le VBA je ne sais pas faire hélas.

Bonjour

L'option prévue par Excel se limite à deux fenêtres synchronisées

A noter qu'au lieu de scroller tu peux taper une adresse dans la zone de d'adresse.

Par exemple, si sur un onglet ton tableau commence en Z391, tu peux passer sur l'autre onglet, taper Z391 dans la zone d'adresse et valider.

Tu peux même en profiter, avant de valider de ta première saisie de Z391, pour copier cette adresse qu'il suffira de coller dans la zone d'adresse pour les onglets suivants ...

L'idée est de minimiser le plus possible les manipulations.

Si je peux m'éviter des copier-coller d'une feuille à l'autre ça m'arrange.

Peux-tu stp me donner la piste pour la synchro de deux feuilles stp ?

Ou si par le biais d'un bouton on peut écrire une macro qui fait que là où je me trouve dans la feuille active, si je change de feuille, je serai au même endroit ?

RE

Cela n'a rien à voir avec des copier coller entre feuilles c'est juste la saisie de l'adresse de la cellule (ou plage) que l'on souhaite voir dans la zone d'adresse d'Excel.

Un déplacement instantané

deplacementrapide

Sinon la syncho du défilement de 2 fenêtres :

  • Commencer par créer une autre fenêtre sur le classeur :
  • Se placer en haut à la ligne voulue
  • Affichage, Nouvelle fenêtre
  • Se placer sur un autre onglet, en haut ou à l'endroit voulu
  • Affichage : Côte à côte. Vérifier que Défilement synchrone est activé ou bien l'activer

Merci Chris,

J'ai bien compris pour la manip qui reste une saisie, ce que je souhaite éviter.

L'idée de synchro de deux pages serait une solution alternative mais pas idéale.

Je m'explique :

sur mon classeur j'ai treize pages dont 12 qui correspondent chacune à un mois de l'année. Et si en Avril, je suis sur un tableau qui est en milieu ou fin de feuille, j'aimerai afin de réaliser une comparaison visuelle rapide pouvoir aller sur janvier, mars ou août en me retrouvant au même endroit sans scroller dans les feuilles janvier, mars ou août.

Je suis désolé d'avoir manqué de clarté

RE

J'ai bien compris mais cela n'existe pas et le scroll n'est pas un événement donc pas interceptable par VBA.

Il faudrait cliquer sur une cellule du tableau qui va bien sur le 1er onglet afin de déclencher un événement selection change pour déclencher du code.

Le problème c'est qu'on passe son temps à changer de cellule quand on bosse ce qui va déclencher le code en permanence... et ralentir Excel...

Ou alors il cliquer puis déclancher volontairement le code... bref pas plus simple que de saisir l'adresse...

Bonjour,

j'ai une piste ...

Private Sub Worksheet_Activate()
    ActiveWindow.SmallScroll Down:=52
End Sub

tu places ce code dans la feuille 2

mais je n'arrive pas à écrire style :

ActiveWindow.SmallScroll Down:=Application.Windows("Feuil1").SmallScroll(Down)

@+JP

Bonjour,

Dans un Module Général

Public Ligne As Long

Dans le code de l'onglet "source"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Ligne = ActiveWindow.ScrollRow
End Sub

quand on clique n'importe où dans la feuille çà enregistre le numéro de la première ligne visible

Dans le code de l'onglet "cible"

Private Sub Worksheet_Activate()
    If Ligne > 0 Then ActiveWindow.ScrollRow = Ligne
End Sub

@+JP

Salut et merci JP,

La difficulté est que chaque mois la source et la cible peuvent changer.

Y aurait-il un moyen pour que le scroll utilisé sur la feuille active se duplique sur les 11 autres feuilles ?

Avez-vous besoin de ma matrice pour réaliser des essais ?

Encore merci à tous pour votre aide précieuse !

Bonjour,

Public Ligne As Long permet de transmettre l'information de page en page

Ligne = ActiveWindow.ScrollRow lit l'état du scroll de la page source

If Ligne > 0 Then ActiveWindow.ScrollRow = Ligne "recopie" l'état de la page source dans la page cible

avec ces éléments , tu peut imaginer plusieurs stratégies ...

La difficulté est que chaque mois la source et la cible peuvent changer.

tu peut imaginer :

cliquer sur un bouton qui utilise l'élément n2 (capture de l'état)

ou , quand tu quittes la page ...

Y aurait-il un moyen pour que le scroll utilisé sur la feuille active se duplique sur les 11 autres feuilles ?

tu peut imaginer :

cliquer sur un bouton qui utilise l'élément n3 (restitution de l'état)

ou , quand tu active la page ... il suffit de mettre dans chacune des 11 feuilles le code suivant

Private Sub Worksheet_Activate()
    If Ligne > 0 Then ActiveWindow.ScrollRow = Ligne
End Sub

à ces éléments , tu peut aussi ajouter ActiveWindow.ScrollColumn pour la position dans les colonnes

@+JP

Bonjour,

Avez-vous besoin de ma matrice pour réaliser des essais ?

si tu veux ,

@+JP

tadaaaaaaaaaaam !

MDP pour déverouiller : 11

Bonjour,

voila , j'ai levé la protection des feuilles "mois" ,

quand tu clique dans la colonne "I" n°9 çà capture l' état de la page..

quand tu va dans une autre page , çà restitue cet état..

à toi de voir avec la protection pour pouvoir cliquer dans la colonne "i" , ou changer de colonne

si la protection empêche le scroll , déprotéger + scroll + protéger ??

dans chaque page "mois" , il y a ce code

Private Sub Worksheet_Activate()
    If Ligne > 0 Then ActiveWindow.ScrollRow = Ligne
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'quand on clique dans la colonne "I" n°9
    If Target.Column = 9 Then
        Ligne = ActiveWindow.ScrollRow
    End If
End Sub

le fichier modifier_JP

@+JP

Merci à toi !

Par contre si dans un tableau j'écris par exemple en d 276, ça annule ma sélection i9 ? et du coup il faut que je scrolle à nouveau pour aller en I9 puis descendre là où j'ai écrit ?

Est il envisageable de sélectionner toute la colonne "i" sans numéro de ligne ?

Bonjour,

la colonne "i" c'est la colonne 9 ... c'est la 9° colonne et non i9

c'est toute le colonne qui est concernée par le click qui capture l' état

je vais : onglet FEVRIER

je vais : ligne 177 , REPISE PP CARDIF

j'écrit n'importe quoi...

je clique dans la colonne "i" n'importe où en i169 par exemple

la capture est faite , note le numéro de la première ligne , moi j'ai 161

je vais : onglet OCTOBRE

regarde le numéro de la première ligne , moi j'ai 161

je vais : ligne 177 , REPISE PP CARDIF

j'écrit n'importe quoi...

je vais : onglet MAI

regarde le numéro de la première ligne , moi j'ai 161

je vais : ligne 324 , SANTE UNIM

j'écrit n'importe quoi...

je clique dans la colonne "i" n'importe où en i320 par exemple

la capture est faite , note le numéro de la première ligne , moi j'ai 307

je vais : onglet AOUT

regarde le numéro de la première ligne , moi j'ai 307

@+JP

Et bien tu sais quoi ? Tu es absolument génial !

Des milliards de merci !

bonjour,

si c'est ok , clique sur résolu

@+JP

Rechercher des sujets similaires à "scroll qui suit feuille"