Problème On error Goto VBA Excel

Résolu
Ludo2110 Messages postés 6 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

J'ai un petit problème avec une imbrication de on error GoTo.

Voici l'objectif de mon code:

-Dans une combobox, l'utilisateur sélectionne une donnée (chiffre ou texte)
-Une recherchev va trouver la valeur en associée dans un tableau
-Si il la trouve il la renvoie dans une textbox

Etant donnée que le type de donnée en entrée peut être du numérique ou du texte, je l'ai dimé as variant. Il y a 2 On Error GoTo:

ERROR: si la donnée entrée dans la combobox n'est pas du texte, il va permettre de convertir cette donnée en long
ERROR2: si la donnée entrée n'est pas connue par la rechercheV, il renvoie "".

Mon problème est le suivant:

1-Lorsque l'utilisateur entre du texte connu: dans la combobox: tout se passe bien

2-S'il entre une donnée numérique connue: le programme va directement a ERROR2 et renvoie: "" (alors que la donnée était connue=>la recherchev aurai du le trouver dans le ERROR grâce la Clng)

3-S'il entre une donnée inconnue numérique, il renvoie une erreur: "Impossible de lire la propriété Vlookup de la Classe Worksheet function", au lieu d'aller a ERROR2 et renvoyer "".

4-S'il entre une donnée inconnue texte, il s'arrête a la conversion en long et me renvoie une erreur "incompatibilité de type" au lieu d'aller à ERROR2 et renvoyer "".

En bref, dès qu'il rencontre une erreur à cause d'une donnée inconnue par la recherchev, il ne va pas a ERROR2 et il ne renvoie pas la recherchev des données numériques. Voici le code:

Private Sub CommandButton1_Click()
Dim TEXT1 As Variant
Dim TEXT2 As Variant

On Error GoTo ERROR
TEXT1 = ComboBox15.Value
TEXT2 = Application.WorksheetFunction.VLookup(TEXT1, Sheets("TIERS").Range("B3:C7000"), 2, False)
TextBox2.Value = TEXT2
Exit Sub

ERROR:
On Error GoTo ERROR2
TEXT1 = CLng(ComboBox15.Value)

TEXT2 = Application.WorksheetFunction.VLookup(TEXT1, Sheets("TIERS").Range("B3:C7000"), 2, False)

Exit Sub

ERROR2:
TextBox2.Value = ""

End Sub

Merci pour votre aide!

Bonne soirée!

Ludovic.

2 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Laisse tomber VLookup et On Error
    Essaies :
    Dim TEXT2 As String
    Dim cel As Range

    TEXT2 = TextBox1.Value
    Set cel = Range("B3:B7000").Find(TEXT2)
    If Not cel Is Nothing Then
    TextBox2.Value = Format(cel.Offset(, 1).Value)
    Else
    TextBox2.Value = ""
    End If
    --
    Cordialement
    Patrice
    2
  2. Ludo2110 Messages postés 6 Statut Membre
     
    Bonsoir Patrice,

    Merci pour votre aide ça fonctionne parfaitement.

    Bonne soirée!

    Cordialement.

    Ludovic.
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      De rien, au plaisir de te relire sur le Forum

      Cordialement
      Patrice
      0