Limiter le scroll.

Fermé
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 - 10 nov. 2017 à 12:18
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 - 10 nov. 2017 à 16:15
Bonjour,

Je souhaiterai limiter le scroll sur les feuilles de mon classeur à la plage A1:BH38

J'ai essayé plusieurs choses :

- Quand j'ouvre le VBA de la feuille, dans les propriétés de la feuille, je définis ScrollArea par A1:BH38. Cela fonctionne aussitôt mais j'ai beau enregistré mon fichier, quand je le ferme l'ouvre à nouveau, les propriétés du ScrollAerA sont à nouveau effacées.

- J'ai aussi essayé de coller des codes VBA que j'avais trouvé :

Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = "$A$1:$BH$38"
End Sub

OU

Private Sub Workbook_Open()
Dim Feuille As Worksheet
For Each Feuille In ThisWorkbook.Sheets
Feuille .ScrollArea = "$A$1:$BH$38"
Next Feuille
End Sub

Mais cela ne fonctionne pas...

Auriez-vous une solution s'il vous plait ?
merci pour votre aide.


4 réponses

Krucksy Messages postés 10 Date d'inscription lundi 6 novembre 2017 Statut Membre Dernière intervention 22 novembre 2017 4
10 nov. 2017 à 12:21
Vérifie que tu enregistres ton fichier dans un format qui comprend des macros, .xls ne les enregistrera pas, il faut prendre .xlsm.
0
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 35
Modifié le 10 nov. 2017 à 12:23
Oui, c'est bien enregistré en .xlsm
J'ai déjà une macro sur ma feuille qui fonctionne parfaitement.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 10 nov. 2017 à 14:14
Bonjour

je viens d'essayer le code ci dessous et qui fonctionne
Option Explicit
'---------------------------
Private Sub Workbook_Open()
Dim Feuille As Worksheet, cptr As Byte
For cptr = 1 To WorkSheets.Count
Workheets(cptr).ScrollArea = "$A$1:$BH$38"
Next
End Sub


Ton autre méthode
Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = "$A$1:$BH$38"
End Sub

Fonctionne chez moi mais je préfère la premiere


 Michel
0
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 35
Modifié le 10 nov. 2017 à 14:22
Bonjour Michel,

Merci pour ta réponse mais je ne comprends pas aucun de ces codes ne fonctionne chez moi, mais je n'y connais pas grand chose en VBA et je colle peut-être ce code au mauvais endroit : quand je suis sur ma feuille, je fais clique droit sur l'onglet => Visualiser le code =>et là je copie le code sur la boite de dialogue qu'il y a au milieu de la page qui s'ouvre (c'est à cet endroit que j'ai le code de ma première macro qui elle fonctionne parfaitement).

Est-ce que je le colle bien au bon endroit ou est-ce que je dois le coller ailleurs ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 10 nov. 2017 à 16:00
Re

"scrollarea s'étein"t à la fermeture du classeur; Mais avec tes macros, les scrolls sont réactivées automatiquement par les codes, donc..

pour la macro wokbookopen, tu vas dans l'éditeur VBA par ALT+ F9

puis


toutes tes feuilles ont automatiquement leur scrollarea d'activées

apparemment pour ton pb la macro workbookopen est suffisante ; les workshets_activaye sont inutiles ;o)


 Michel
0
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 35
10 nov. 2017 à 16:15
Re,

Cela ne fonctionne malheureusement pas...
0