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 iMerci 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 WithComment ç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.