Macro qui ne fonctionne pas en changeant de feuille

gourdin

XLDnaute Impliqué
Bonjour

J'utilise le code suivant pour limiter la sélection à une plage de cellules "B4:B10" sur la feuille1
Code:
Sub blocage()
ActiveSheet.Range("B4:B10").Select
ActiveSheet.ScrollArea = Selection.Address 
End Sub

Le code suivant permet d'enlever cette "limitation" :
Code:
Sub déblocage()
ActiveSheet.ScrollArea = ""
End Sub
Lorsque j'utilise ce code pour enlever la limitation avec un bouton macro celà fonctionne bien.
Mais je souhaite que cette macro se déclenche en changeant de feuille du classeur.
Pour celà j'utilise la macro évènementielle suivante :
Code:
Private Sub Worksheet_Deactivate()
ActiveSheet.ScrollArea = ""
End Sub
Or je ne sais pas pourquoi mais la macro ne se déclenche pas en changeant de feuille (et donc, après avoir selectionné la feuille2, quand je retourne sur la feuille1 la sélection des cellules reste limitée à la plage B4:B10).

Voir fichier joint.

Merci de votre aide.
 

Pièces jointes

  • Classeur1.xls
    44.5 KB · Affichages: 66
  • Classeur1.xls
    44.5 KB · Affichages: 68
  • Classeur1.xls
    44.5 KB · Affichages: 66

pedrag31

XLDnaute Occasionnel
Re : Macro qui ne fonctionne pas en changeant de feuille

Bonjour Gourdin, Bonjour le forum,

Je pense que le problème vient de l'utilisation d' "Activesheet", quand l'évènement "Worksheet_Deactivate" de la feuille2 est exécuté, la feuille 1 n'est pas encore active et donc la commande "scrollarea" s'applique sur la feuille 2.

Voir fichier joint; j'utilise le nom de la feuille pour appliquer la commande "scrollarea" sur la feuille1:

Code:
Private Sub Worksheet_Deactivate()
Worksheets("Feuille1").ScrollArea = ""
End Sub

Simplification pour la Sub Blocage:

Code:
Sub blocage()
ActiveSheet.ScrollArea = Range("B4:B10").Address
End Sub

Bonne journée :)
 

Pièces jointes

  • ScrollArea.xls
    50.5 KB · Affichages: 57

Discussions similaires

Statistiques des forums

Discussions
312 360
Messages
2 087 598
Membres
103 604
dernier inscrit
CAROETALEX59