ScrollArea sur la zone visible de la feuille

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Pour limiter le scroll dans une feuille de dimensions connues, c'est simple: Feuil1.ScrollArea = 'B4:H23'.

Mais si l'on a plusieurs feuilles, chacune avec ses limites horizontales et verticales, différentes, comment faire ?

Je cherche une sorte de ActiveSheet.ScrollArea = 'SurfaceVisible'

ou

ActiveSheet.ScrollArea = 'A1:YZ' où YZ est la dernière cellule visible en bas à droite, déterminée automatiquement.

Est-ce possible ?

Merci,
Mi_



PS. Les archives du forum ne sont pas fonctionnelles.

Message édité par: Mi_, à: 25/10/2005 19:15
 

Mi_

XLDnaute Occasionnel
Bonsoir Gérard, le forum,

Même si on masque les lignes et les colonnes inutiles, le scroll peut aller au-dela de la limite, ce que je veux éviter justement.

Je cherche donc le code de la dernière cellule visible en bas à droite.
 

Mi_

XLDnaute Occasionnel
Tient un Hervé :)

Au secours !!! Avec ton code, Hervé, le scroll est complètement désactivé et l'affichage est figé à l'unique surface visible avant l'exécution du code ! S'il y avait des zones visibles en dessous ou à droite de l'écran (moniteur), c'est plus possible de les voir.

Je veux limiter le scroll, cèrtes, mais pas si fort. :) Seulement pour les zones visibles non masquées (n'importe leur dimension), et non pas pour les zones visibles à un moment donné sur l'écran.
 

Hervé

XLDnaute Barbatruc
Salut Mi_

:) :) :)

Moi je me suis arreter à cette phrase de toi : ActiveSheet.ScrollArea = 'SurfaceVisible'

c'est vrai que c'etait un peu costaud comme méthode, j'en conviens.

mais bon tu m'avoueras aussi que tes explications etaient peu précise.

:)

Bon , et ca, ca irait :

ActiveSheet.ScrollArea = ActiveSheet.UsedRange.Address

on limite le scroll aux plages avec données.

a plus

salut
 

ChTi160

XLDnaute Barbatruc
Bonsoir Mi_
bonsoir Hervé
Bonsoir le Fil

je joins une prose de Mister Ti Lol
qui pourra peut être être Adaptée
Merci Thierry
ScrollAera
Utiliser la fonction 'ScrollArea' sur plusieurs plages afin de délimiter chacune d'entre elles...L'exemple suivant permet de délimiter une ou plusieurs zones, et ce de manière très simple pour chacune des feuilles présentes dans le fichier...
Les plages accessibles sont définies dans les constantes Plage1 et Plage2 de la macro, qui fonctionne correctement même après l'ajout d'une nouvelle feuille. En cas de sélection d'une plage de plusieurs cellules dont certaines se trouvent en zone 'non autorisée', la sélection est réduite aux seules cellules valides.

'Code à coller dans ThisWorkbook
'
Option Explicit

'Mai 04

Const Plage1 = '$A$1:$H$100'
Const Plage2 = '$P$1:$R$100'

Dim ShCol As Collection

Code:
Private Sub Workbook_NewSheet (ByVal Sh As Object)
  Initialise
End Sub

Code:
Private Sub Initialise ()
Dim Sh As Worksheet
  Set ShCol = New Collection
  For Each Sh In ThisWorkbook.Worksheets
    ShCol.Add '$A$1', Sh.Name
  Next Sh
End Sub

Code:
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range)
Dim Plage As Range
  On Error Resume Next
  With Sh
    If ShCol Is Nothing Then Initialise
    Set Plage = Intersect (Target, Union (.Range (Plage1), .Range (Plage2)))
    If Plage.Count <> Target.Count Then
      If Plage Is Nothing Then Application.Goto .Range (ShCol (.Name)) _
        Else Plage.Select
    Else
      ShCol.Remove .Name
      ShCol.Add Target.Address, .Name
    End If
  End With
End Sub

bonne fin de Soirée
Ps je joins le fichier que je viens de retrouver Lol [file name=ScrollAreaTi.zip size=10703]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ScrollAreaTi.zip[/file]

Message édité par: Chti160, à: 26/10/2005 22:41
 

Pièces jointes

  • ScrollAreaTi.zip
    10.5 KB · Affichages: 83
  • ScrollAreaTi.zip
    10.5 KB · Affichages: 82
  • ScrollAreaTi.zip
    10.5 KB · Affichages: 79

Statistiques des forums

Discussions
312 361
Messages
2 087 613
Membres
103 607
dernier inscrit
lolo1970