VBA si une valeur apparait sur ...

Tomd

XLDnaute Nouveau
Bonjour,

Je souhaiterai rechercher sur une plage de données si une valeur défini apparait:

Private Sub CommandButton1_Click()

Dim supplier As String
supplier = Worksheets("supplier form").Range("B1")
Dim x As Range


Sheets("Rating").Activate

  • Set x = [A3:A1048576].Find(what:=supplier)
If x Is True Then

Z = [A3:A1048576].Find(what:=supplier, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows).Row

Cells(Z, 2) = Worksheets("supplier form").Range("F1").Value

Cells(Z, 3) = TextBox1.Value
Cells(Z, 4) = TextBox2.Value

Else

y = Range("A1048576").End(xlUp).Offset(1, 0).Row

Cells(y, 1) = Worksheets("supplier form").Range("B1").Value
Cells(y, 2) = Worksheets("supplier form").Range("F1").Value

Cells(y, 3) = TextBox1.Value
Cells(y, 4) = TextBox2.Value

Sheets("Supplier Form").Activate

End If

End Sub


Je suis persuadé que c'est la définition de x qui est incorrect. Quel est la formule afin de correctement définir "si cette valeur apparait sur cette plage de données alors ..."

Merci beaucoup et bonne journée,
 

Paf

XLDnaute Barbatruc
Bonjour Tomd

Avec Set x = [A3:A1048576].Find(what:=supplier), x peut être 'rien' ou 'pas rien'

Donc on test sur le 'rien':

If x is Nothing then 'si on n'a pas trouvé
Else
End If


ou

if Not x is nothing 'si on a trouvé
...


Par ailleurs, x.row donne le N° de ligne si la recherche a abouti. Pas besoin de relancer une recherche pour déterminer Z.

A+
 

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 822
dernier inscrit
kader55