Fonction Find Lookat:=xlWhole

Bonjour et merci par avance pour votre aide

J'ai crée deux userforms distincts. Je souhaite que lorsque le nom (textbox11), prénom (textbox12) et date de naissance (textbox13) correspondent aux données du userform 1, les données de mon userform2 soient intégrées à la même ligne que les données du userform1.

A ces fins je souhaite créer une variable me permettant de retrouver la ligne correspondant à ces trois conditions. J'utilise pour cela la fonction find Lookat:=xlwhole. Cela marche très bien avec deux conditions (nom et prénom)

N = TextBox11.Value
M = TextBox12.Value

l = Columns("a").Find(N, lookat:=xlWhole).Columns("b").Find(M, lookat:=xlWhole).Row

.Range("ak" & l).Value = Format(textbox2, "general number")

mais pas quand j'intègre la troisième variable correspondant à la DDN.

N = TextBox11.Value
M = TextBox12.Value
P = TextBox13.Value
l = Columns("a").Find(N, lookat:=xlWhole).Columns("b").Find(M, lookat:=xlWhole).Columns("c").Find(P, lookat:=xlWhole).Row

.Range("ak" & l).Value = Format(textbox2, "general number")

Merci de votre aide !

Bonjour,

Je pense qu'il faudrait plutôt passer par un boucle de recherche plutôt qu'un Find, je ne les utilise que pour chercher suivant un critère unique:

Dim tableau As Variant

N = TextBox11.Value
M = TextBox12.Value
P = TextBox13.Value
tableau = Range("a1").CurrentRegion

For i = LBound(tableau, 1) + 1 To UBound(tableau, 1)
    If tableau(i, 1) = N And tableau(i, 2) = M And tableau(i, 3) = P Then
        .Range("ak" & i).Value = Format(textbox2, "general number")
        Exit For
    End If
Next i

Merci beaucoup pour votre réponse. En effet c'est plus simple avec une boucle !

J'ai un grand nombre de données à rentrer dans le tableau. Comment puis-je utiliser la même technique sans avoir à réécrire le code pour chaque données ?

Le code suivant ne marche pas...

Encore merci

Dim tableau As Variant

N = TextBox11.Value
M = TextBox12.Value
P = TextBox13.Value
tableau = Range("a1").CurrentRegion

For i = LBound(tableau, 1) + 1 To UBound(tableau, 1)
    If tableau(i, 1) = N And tableau(i, 2) = M And tableau(i, 3) = P Then
        .Range("ak" & i).Value = Format(textbox2, "general number")
        .Range("am" & i).Value = Format(textbox3, "general number")
        Exit For
    End If
Next i
End With

Comment ça il ne fonctionne pas?

Il ne fonctionne pas dans le sens où ça ne modifie qu'une ligne? si c'est ça c'est normal, j'avais mis Exit For pour sortir de la boucle dès la première valeur qui trouvait la condition, pour arrêter la recherche.

Rechercher des sujets similaires à "fonction find lookat xlwhole"