Fonction recherche USF

Bonjour,

je ne comprend pas pourquoi mon code ne fonctionne pas!!!

quelqu'un peut il m'aider??

le but étant de faire apparaitre automatiquement lors de la saisie du textbox4, de le valeur correspondante en textbox28.

les données du textbox4 correspondent à la feuil2 colonne A

les données du textbox28 à aller chercher sont à la feuil2 colonneB

Private Sub textbox4_change()

Dim Ligne As Long

'sélection de la feuille

Feuil2("ingredient").Activate

Set c = Recherche

Function Recherche(Valeur, Colonne As Integer) As Long

Dim Trouve As Range

Set Trouve = Columns(Colonne).find(Valeur, , xlValues, xlWhole)

If Not Trouve Is Nothing Then 'Trouvé

Recherche = Trouve.Row

Else

Recherche = 0

End If

End Function

Ligne = c(combobox4.Text, 1) ' recherche du texte sélectionné du combobox1 dans la colonne A ( columns("A:A") = Columns(1) )

If Ligne = 0 Then Exit Function ' valeur non trouvée

'On a trouvé la valeur sur la ligne Ligne

TextBox28 = Range("B" & Ligne)

End Sub

Bonjour line31,

Essaie avec ce code :

Private Sub textbox4_change()
Dim c As Range
    Set c = Sheets(2).Range("A:A").Find(TextBox4, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not c Is Nothing Then TextBox28 = c.Offset(, 1)
End Sub

Et pourquoi y'a un combobox qui intervient ici ?

(re) bonjour new-vba!

je viens d'essayer avec le code que tu me donnes:

et voici ce que j'ai comme message d'erreur:

'run time error'-2147352571 (80020005)':

could not set the value property. Type mismatch.

merci encore

pour la combobox, elle n'avait rien à faire la. C'était un code que j'avais recopié et adapté à mon cas. j'ai retesté mais l'erreur viens toujours du fais que la fonction recherche n'est pas acceptée.

-- 21 Juil 2010, 14:10 --

ah oui! j'oubliais: la partie selectionnée en jaune est : "TextBox28 = c.Offset(, 1)"

si ça te parle plus que moi...

Re,

A ce stade, un bout de fichier faciliterait toute aide ! Si possible envoi un bout de ton fichier en gardant la structure des données et en gardant l'userform avec les 2 textbox.

ok

alors voici le fichier en question.

la textbox 4 est celle ou je saisie, la textbox28 celle qui affiche la nom correspondant.

32book.zip (18.28 Ko)

Re,

Chez moi ça marche ! Si tu mets par exemple 545 dans la référence ingrédient 01, j'ai bien "carpaccio" dans ingredient name !

capturer

Est-ce à cause de ton Excel ?

punaise!

suis-je maudit?

bon, je m'y replonge!

en fait je travaille sur ce fichier depuis le travail: excel 2003 en anglais

et depuis chez moi: excel 2007 en français...

est ce que ça joue??

Dis-moi line31,

Qu'entres-tu dans l'userform pour avoir cette erreur ?

j'entre une valeur que je sais d'avance etre dans ma base de données

je sais que 542 correspond à carpaccio, alors je saisie 542 pour avoir carpaccio...

tu penses que ça viens de moi?

Et si tu fais comme ça :

Private Sub textbox4_change()

Dim c As Range
    Set c = Sheets(2).Range("A:A").find(TextBox4.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not c Is Nothing Then TextBox28.Value = c.Offset(, 1).Value
End Sub

ou comme ça :

Private Sub textbox4_change()

Dim c As Range
    Set c = Sheets(2).Range("A:A").find(TextBox4.Text, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not c Is Nothing Then TextBox28.Text = c.Offset(, 1).Text
End Sub

Ça marche ?

ça marche!!!!!!!!!!!!!

mon cher vba-new: merci!!!!

pourquoi donc est-ce que ça marchait pas?

Je ne sais pas !

Il est vrai que normalement TextBox28 <=> TextBox28.Value

Mais il semblerait que dans quelque cas, cela ne corresponde pas ! Donc à l'avenir, je prendrai l'habitude d'écrire complètement le TextBoxYY.Value.

vba-new a écrit :

Je ne sais pas !

Il est vrai que normalement TextBox28 <=> TextBox28.Value

Mais il semblerait que dans quelque cas, cela ne corresponde pas ! Donc à l'avenir, je prendrai l'habitude d'écrire complètement le TextBoxYY.Value.

ok!!

une dernière question, si je veux ajouter la valeur contenu dans la colonne suivante dans une troisième textbox?

dans mon exemple: je voudrai aussi ajouter kilogramme...

Private Sub textbox4_change()

Dim c As Range
    Set c = Sheets(2).Range("A:A").find(TextBox4.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not c Is Nothing Then TextBox28.Value = c.Offset(, 1).Value & TextBox29.Value = c.Offset(, 2).Value

c'est pas bon où c'est encore moi qui fait rater...

line31 a écrit :
vba-new a écrit :
Private Sub textbox4_change()

Dim c As Range
    Set c = Sheets(2).Range("A:A").find(TextBox4.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not c Is Nothing Then TextBox28.Value = c.Offset(, 1).Value & TextBox29.Value = c.Offset(, 2).Value

c'est pas bon où c'est encore moi qui fait rater...

C'est pas bon mais presque bon ! La logique est là ! Fais comme ça plutôt :
Private Sub textbox4_change()

Dim c As Range
    Set c = Sheets(2).Range("A:A").find(TextBox4.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not c Is Nothing Then TextBox28.Value = c.Offset(, 1).Value : TextBox29.Value = c.Offset(, 2).Value

c'est bon! merci beaucoup!

Rechercher des sujets similaires à "fonction recherche usf"