OVH Cloud OVH Cloud

EnableEvents

5 réponses
Avatar
Jean-Claude
Bonjour,
Cela fait un moment que je cherche à comprendre mon problème
A savoir
Dans le code d'une feuille j'ai une structure du type


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Intersct = Application.Intersect(Selection, Range("Composante"))
Application.EnableEvents = False
If Not Intersct Is Nothing Then
Select Case Selection.Address
Case Range("Perf").Address
ScrollBar1.Value = Sheets("Données").Range("Coef0")
Case Range("Habileté").Address
ScrollBar1.Value = Sheets("Données").Range("Coef1")
Case Range("Comportement").Address
ScrollBar1.Value = Sheets("Données").Range("Coef2")
End Select
End If
Application.EnableEvents = True
End Sub

Private Sub ScrollBar1_Change()
........
End Sub

Bref je désire que les évènements liés au changemnt de sélection soient
bloqués.
Or cela fonctionne correctement au premier changement. Mais dès le second
changement l'évènement ScrollBar1_Change est exécuté.
Y-a-t-il une explication?

Merci d'avance
--
A+
Jean-Claude
jcvalAenlever@wanamoo.fr - Aenlever bien évidement

5 réponses

Avatar
AV
En essayant comme ça :

Private var

Private Sub ScrollBar1_Change()
If var = True Then Exit Sub
-------
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Intersct = Application.Intersect(Selection, Range("Composante"))
Application.EnableEvents = False
If Not Intersct Is Nothing Then
var = True
--------
--------
var = False
End Sub

AV
Avatar
Jean-Claude
"AV" a écrit dans le message de
news:%
En essayant comme ça :

Private var


C'est une variable qui est déclarée?? Ne faut-il pas dans ce cas utiliser
Dim ??



Private Sub ScrollBar1_Change()
If var = True Then Exit Sub
-------
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Intersct = Application.Intersect(Selection, Range("Composante"))
Application.EnableEvents = False
If Not Intersct Is Nothing Then
var = True
--------
--------
var = False
End Sub

AV




Avatar
AV
C'est une variable qui est déclarée?? Ne faut-il pas dans ce cas utiliser
Dim ??


Non car elle est déclarée au niveau module (1° ligne de code en haut)
et initialisée par le "Worksheet_SelectionChange"

AV

Avatar
Jean-Claude
Ok et merci ça marche
Quel est le principe exact de ton astuce ?
Jc
"AV" a écrit dans le message de
news:O%
C'est une variable qui est déclarée?? Ne faut-il pas dans ce cas
utiliser


Dim ??


Non car elle est déclarée au niveau module (1° ligne de code en haut)
et initialisée par le "Worksheet_SelectionChange"

AV





Avatar
AV
Ok et merci ça marche
Quel est le principe exact de ton astuce ?


Ne déclencher l'évènement "ScrollBar1_Change" que si var = False

pas plus !

AV