Comparer valeur dans ComboBox
Résolu
DavyBernhard
-
HellCowBoy -
HellCowBoy -
Bonjour,
Question sur ComboBox dans un Userform sous EXCEL.
Je remplie une ComboBox dans un Userform, dans initialise.
La liste provient d'une plage de par exemple Sheets("Feuil1").Range("A1:A50")
Mais l'utilisateur a le droit d'inscrire aussi autre chose dans cet ComboBox.
Et voilà mon problème:
Les valeurs de la liste renvoie aussi d'autres informations de couleurs ou d'autres value de cellules. Je voudrais comparer la valeur entrée dans le combobox à sa liste de valeur, et dans ComboBox_change dire si la valeur entrée est pas égale à une valeur de la liste alors faire : mgsbox("Attention") sinon il doit apporter des modifications dans certains TextBox ou autre colorbutton.
Prenons un exemple:
Dans la colonne A --> 1234
Dans la colonne B --> abcd
Dans la colonne C --> une couleur jaune
Donc dans ma ComboBox j'aurais seulement dans la liste "1234".
[code]
Sub ComboBox_change()
Dim h as Intenger
FindName=ComboBox.value
For h = 7 To Range("A65536").End(xlUp).Row
If Range("A" & h) = FindName Then
TextBox1=Range("B"&h).value
ColorButton1=Range("C"&h).Interior.ColorIndex
End if
Next h
End sub
/code
Manuellement j'écris 1, donc il me propose "1234", et la TextBox1 et ColorButton1 se mette à jour. Mais si je continue à écrire "1435" la TextBox1 et colorbutton1 ne se réinitialise plus.
C'est pour cela que je veux rajouter cette comparaison entre la valeur entrée et la liste de cette ComboBox et dire que si elle ne trouve pas donc:
TextBox1=""
ColorButton1.color=0
J'espère que vous avez pu me comprendre et merci de votre aide
Davy
Question sur ComboBox dans un Userform sous EXCEL.
Je remplie une ComboBox dans un Userform, dans initialise.
La liste provient d'une plage de par exemple Sheets("Feuil1").Range("A1:A50")
Mais l'utilisateur a le droit d'inscrire aussi autre chose dans cet ComboBox.
Et voilà mon problème:
Les valeurs de la liste renvoie aussi d'autres informations de couleurs ou d'autres value de cellules. Je voudrais comparer la valeur entrée dans le combobox à sa liste de valeur, et dans ComboBox_change dire si la valeur entrée est pas égale à une valeur de la liste alors faire : mgsbox("Attention") sinon il doit apporter des modifications dans certains TextBox ou autre colorbutton.
Prenons un exemple:
Dans la colonne A --> 1234
Dans la colonne B --> abcd
Dans la colonne C --> une couleur jaune
Donc dans ma ComboBox j'aurais seulement dans la liste "1234".
[code]
Sub ComboBox_change()
Dim h as Intenger
FindName=ComboBox.value
For h = 7 To Range("A65536").End(xlUp).Row
If Range("A" & h) = FindName Then
TextBox1=Range("B"&h).value
ColorButton1=Range("C"&h).Interior.ColorIndex
End if
Next h
End sub
/code
Manuellement j'écris 1, donc il me propose "1234", et la TextBox1 et ColorButton1 se mette à jour. Mais si je continue à écrire "1435" la TextBox1 et colorbutton1 ne se réinitialise plus.
C'est pour cela que je veux rajouter cette comparaison entre la valeur entrée et la liste de cette ComboBox et dire que si elle ne trouve pas donc:
TextBox1=""
ColorButton1.color=0
J'espère que vous avez pu me comprendre et merci de votre aide
Davy
A voir également:
- Comparer valeur dans ComboBox
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Comparer prix amazon - Guide
- Valeur ascii - Guide
- Meilleur prix Amazon : payer moins cher avec Amazin'Europe - Accueil - Commerce
- Excel ne pas afficher #valeur ✓ - Forum Excel
4 réponses
Bonjour,
La procédure ComboBox_Change() ne convient pas pour ce que tu veux faire.
Utilise plutot
- ComboBox_Click() qui agit quand tu selectionnes un élément de la liste
- ComboBox1_KeyDown() qui agit quand tu entres du texte à la main
Exemple:
il faut desactiver la procédure ComboBox_Change() en la renommant CB_Change().
Remplaces MsgBox par ce que tu veux faire
A+.
La procédure ComboBox_Change() ne convient pas pour ce que tu veux faire.
Utilise plutot
- ComboBox_Click() qui agit quand tu selectionnes un élément de la liste
- ComboBox1_KeyDown() qui agit quand tu entres du texte à la main
Exemple:
il faut desactiver la procédure ComboBox_Change() en la renommant CB_Change().
'choisir un élément de la liste
Private Sub ComboBox_Click()
MsgBox ComboBox.Text
End Sub
'taper du texte et appuyer sur Entrée
Private Sub ComboBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
MsgBox ComboBox.Text
End If
End Sub
Remplaces MsgBox par ce que tu veux faire
A+.
Bonjour calibos,
J'ai apporté les modifications que tu m'as dis, cela fonctionne bien. Mais il reste encore quelque chose:
Quand je commance à taper le mot dans la combobox par exemple "12" il me met en suggestion "1234", le 3 et 4 sont grisés, quand je quitte le combobox, il garde le "1234" mais ne met rien à jour.
Y-a t il aussi une fonction quand on quitte la combobox?
Merci par avance
Davy
J'ai apporté les modifications que tu m'as dis, cela fonctionne bien. Mais il reste encore quelque chose:
Quand je commance à taper le mot dans la combobox par exemple "12" il me met en suggestion "1234", le 3 et 4 sont grisés, quand je quitte le combobox, il garde le "1234" mais ne met rien à jour.
Y-a t il aussi une fonction quand on quitte la combobox?
Merci par avance
Davy