XL 2010 Forcer un ComboBox à conserver l'item sélectionné

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai un ComboBox ("ComboDilutions") qui affiche, dans sa liste déroulante, un certain nombre d'items.
Je choisis un item, supposons le 3ème de la liste.
Si un certain événement intervient, alors, automatiquement, je reviens au 1er item de la liste.
- Facile :
VB:
Sheets("BTX").ComboDilutions.ListIndex = 0      'sélection par défaut du 1er item ("NO DILUTIONS") de la liste de la ComboBox "ComboDilutions"
Tant que l'événement en question n'est pas achevé, le ComboBox est bloqué.
- Facile :
VB:
Private Sub ComboDilutions_Change()

If exclu <> 0 Then Exit Sub      '"exclu" signalant (s'il est <> 0) que l'événement a lieu

'blablabla

End Sub
Il y aurait-il un moyen, quand le ComboBox est bloqué, de faire en sorte que lorsque l'on veut choisir malencontreusement (puisque le ComboBox est bloqué...) un autre item de la liste (supposons le 4ème), automatiquement, en quittant le ComboBox, le 1er item soit sélectionné et non pas celui sur lequel on avait cliqué inutilement ?

On pourra, à juste titre, me rétorquer qu'il suffit, lorsque l'événement a cessé et que le ComboBox est débloqué, de mettre :
VB:
Sheets("BTX").ComboDilutions.ListIndex = 0      'sélection par défaut du 1er item ("NO DILUTIONS") de la liste de la ComboBox "ComboDilutions"
Mais là apparaît un problème, pas grave, mais disgracieux :
Nous avions sélectionné le 4ème item de la liste. Le ComboBox déverrouillé, cet item va se déclencher et instantanément après le 1er, d'où méchant scintillement.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir Magic_Doctor,

Il paraît plus logique de piloter la ComboBox depuis la macro qui gère le "l'événement en question" et donc la variable (mémorisée) exclu.

Par exemple avec un code de ce genre :
Code:
Static exclu As Boolean 'mémorise la variable
'ici le code définissant (entre autre) la variable exclu
With Sheets("BTX")
  If exclu Then
    .ComboDilutions.ListIndex = 0
    .ComboDilutions.Enabled = False
  Else
    .ComboDilutions.Enabled = True
  End If
End With
A+
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo