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 !
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.
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
Tu as tout à fait raison : pourquoi faire compliqué quand on peut faire simple ?!
Il est vrai que j'ai parfois (...) ce défaut.
La sentence . ".ComboDilutions.Enabled = False" résoud parfaitement le problème.
- 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