VBA rechercheV avec SI

bonjour à tous,

j'ai un souci sur ma rechercheV en VBA, je sais que dans certains elle ressort en erreur et cela plante la macro. comment faire pour que a la place elle m'affiche "0" dans la textbox?

ci dessous mon code:

Private Sub UserForm_Initialize()

TextBox2.Value = UserForm2.TextBox16.Text

Dim recherche As String

recherche = Application.WorksheetFunction.VLookup(TextBox2.Value, Sheets("base clients").Range("E2:V50000"), 9, False)

TextBox1.Value = recherche

j aimerai dire "si(recherchev = ERROR , 0 , recherchev) ou meme un sierreur mais je n'y arrive pas.

Merci pour votre aide.

Bonjour

Un essai à tester. Te convient-il ?

Bye !

82classeur1-v1.xlsm (16.31 Ko)

bonjour,

merci pour ta réponse, je n'arrive pas du tout à adapter ton code.

j aimerai dire:

=si(recherche4 = "" ; 0 ; recherche4)

mais ca me met error

Nouvelle version :

42classeur1-v2.xlsm (19.20 Ko)

Bye !

Bonjour,

Peut-être ainsi :

Private Sub UserForm_Initialize()
    Dim recherche As String, i As Long
    TextBox2.Value = UserForm2.TextBox16.Text
    On Error Resume Next
    With Sheets("base clients")
        i = WorksheetFunction.Match(TextBox2.Value, .Range("E2:E50000"), 0)
        If Err.Number <> 0 Then
            Err.Clear: recherche = "0"
        Else
            recherche = .Range("M" & i + 1)
        End If
    End With
    TextBox1.Value = recherche
End Sub

Ou bien autrement :

Private Sub UserForm_Initialize()
    Dim recherche As String, i As Long
    TextBox2.Value = UserForm2.TextBox16.Text
    recherche = "0"
    With Sheets("base clients")
        For i = 2 To 50000
            If .Cells(i, 5) = TextBox2.Value Then
                recherche = .Cells(i, 13): Exit For
            End If
        Next i
    End With
    TextBox1.Value = recherche
End Sub

Ou encore :

Private Sub UserForm_Initialize()
    Dim recherche As String, c As Range
    TextBox2.Value = UserForm2.TextBox16.Text
    Set c = Sheets("base clients").Range("E2:E50000").Find(TextBox2.Value, , , xlWhole)
    If Not c Is Nothing Then
        recherche = c.Offset(, 8)
    Else
        recherche = "0"
    End If
    TextBox1.Value = recherche
End Sub

Bonjour,

merci à vous 2 ! MFERRAND, c'est parfait merci beaucoup, j'ai réussi a réutiliser et adapter tes formules !! un grand merci à vous !

excellente journée

Bonsoir,

En fait, il s'agit de 3 méthodes considérées comme "classiques" à propos desquelles je me souviens avoir lu il y a maintenant pas mal de temps un article qui faisait la comparaison entre elles en termes de rapidité... Les résultats n'étaient pas très tranchés, il en ressortait que selon le contexte de recherche, la taille et différents paramètres (que j'ai un peu oublié) chacune pouvait se révéler tour à tour plus avantageuse). Et comme ton sujet m'a fait repenser à cet article...

En testant tout, tu es en mesure de choisir le plus avantageux pour toi.

Cordialement.

Rechercher des sujets similaires à "vba recherchev"