Limiter le scroll.

nemotri 175 Messages postés dimanche 9 août 2009Date d'inscription 8 décembre 2017 Dernière intervention - 10 nov. 2017 à 12:18 - Dernière réponse : nemotri 175 Messages postés dimanche 9 août 2009Date d'inscription 8 décembre 2017 Dernière intervention
- 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.


Afficher la suite 

6 réponses

Répondre au sujet
Krucksy 10 Messages postés lundi 6 novembre 2017Date d'inscription 22 novembre 2017 Dernière intervention - 10 nov. 2017 à 12:21
0
Utile
Vérifie que tu enregistres ton fichier dans un format qui comprend des macros, .xls ne les enregistrera pas, il faut prendre .xlsm.
Commenter la réponse de Krucksy
nemotri 175 Messages postés dimanche 9 août 2009Date d'inscription 8 décembre 2017 Dernière intervention - Modifié par nemotri le 10/11/2017 à 12:23
0
Utile
Oui, c'est bien enregistré en .xlsm
J'ai déjà une macro sur ma feuille qui fonctionne parfaitement.
Commenter la réponse de nemotri
michel_m 14972 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 17 janvier 2018 Dernière intervention - Modifié par michel_m le 10/11/2017 à 14:14
0
Utile
1
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
nemotri 175 Messages postés dimanche 9 août 2009Date d'inscription 8 décembre 2017 Dernière intervention - 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 ?
Commenter la réponse de michel_m
michel_m 14972 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 17 janvier 2018 Dernière intervention - Modifié par michel_m le 10/11/2017 à 16:00
0
Utile
1
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
nemotri 175 Messages postés dimanche 9 août 2009Date d'inscription 8 décembre 2017 Dernière intervention - 10 nov. 2017 à 16:15
Re,

Cela ne fonctionne malheureusement pas...
Commenter la réponse de michel_m