Erreur Combobox

Lolo92

XLDnaute Nouveau
Bonjour,

J'ai un userform avec un combobox. Je remplis ce combobox grace à une liste qui se situe sur une fauille de mon classeur. Jusqu'ici tout va bien. J'autorise la saisie de caractère pour selectionner plus rapidement. Seulement si je rentre une valeur qui n'existe pas dans ma liste, j'ai droit à un message d'erreur "runtime 91".....

Si vous m'avez compris, help please :p

Merci.
 

JNP

XLDnaute Barbatruc
Re : Erreur Combobox

Salut :),
Pas sûr d'avoir compris, mais si tu mets dans ton Initialize
Code:
ComboBox1.Style = fmStyleDropDownList
ou directement dans la propriété du ComboBox, tu as bien l'aide à la saisie et impossibilité de saisir quelque chose qui n'est pas dans la liste :rolleyes:...
Bon courage :cool:
 

Lolo92

XLDnaute Nouveau
Re : Erreur Combobox

Tu as bien compris (à peu près! lol).
C'est à peu près ce que je veux sauf que ça marche pas terrible.... En fait il faudrait que j'autorise la saisie et que dès que j'ai un caractère qui n'est pas dans la liste, j'affiche un message d'erreur (per exemple)
Exemple:
mon combobox est rempli par "toto", "titi" et "tata"
Je tape "t" : tata apparait en tant que proposition
ensuite, Je tape "o" : toto apparait en tant que proposition
ensuite si je tape "r" : message d'erreur disant que la référence n'existe pas....
 

Lolo92

XLDnaute Nouveau
Re : Erreur Combobox

Merci pour tes réponses rapides. Justement, comment on teste? A la limite, je peux me contenter d'empécher la saisie du mauvais caractère.....

Voilà mon code si ça eut aider:

Code:
Private Sub ComboBox1_Change()
Dim a1 As Integer
Dim cherche1 As String
cherche1 = ComboBox1.Value
Quantité.Text = ""
'recherchev
a1 = Sheets("feuil1").Cells.Find(What:=cherche1, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
Description = Range("A" & a1).Offset(0, 1).Value
Prix = Range("A" & a1).Offset(0, 3).Value

End Sub
 

JNP

XLDnaute Barbatruc
Re : Erreur Combobox

Re :),
A tester
Code:
Dim a1 As Range
Dim cherche1 As String
Private Sub ComboBox1_Change()
cherche1 = ComboBox1.Value
Set a1 = Sheets("feuil1").Range("A:A").Find(What:=cherche1, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlNext).Row
If a1 Is Nothing Then
ComboBox1.Text = Left(ComboBox1.Text, Len(ComboBox1.Text) - 1)
End If
End Sub
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
cherche1 = ComboBox1.Value
Quantité.Text = ""
'recherchev
Set a1 = Sheets("feuil1").Range("A:A").Find(What:=cherche1, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext)
If Not a1 Is Nothing Then
Description = a1.Offset(0, 1).Value
Prix = a1.Offset(0, 3).Value
End If
End Sub
Bonne suite :cool:
 

Lolo92

XLDnaute Nouveau
Re : Erreur Combobox

Bon, j'arrive à avoir quelquechose de correcte avec ça:

Code:
Private Sub ComboBox1_Change()

Dim a1 As Integer
Dim cherche1 As String
cherche1 = ComboBox1.Value
Quantité.Text = ""
On Error Resume Next
a1 = Sheets("feuil1").Cells.Find(What:=cherche1, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
If a1 > 1 Then
Description = Range("A" & a1).Offset(0, 1).Value
Prix = Range("A" & a1).Offset(0, 3).Value
Else
MsgBox "Nous sommes le " & Date, vbOKOnly + vbInformation, "mDF XLpages.com"
ComboBox1.Text = Left(ComboBox1.Text, Len(ComboBox1.Text) - 1)
End If

End Sub

Par contre, le souci, c'est que je boucle sur l'erreur, jusqu'à ce qu'il n'y ai plus de caractère de rentré....
Ce qui serait bien, ça serait d'avoir la première valeur approchante en cas d'erreur...
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 019
Membres
104 006
dernier inscrit
CABROL