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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 vba
Réponses
14
Affichages
2 K
Retour