Problème On error Goto VBA Excel

Résolu/Fermé
Ludo2110 Messages postés 6 Date d'inscription mardi 18 février 2014 Statut Membre Dernière intervention 25 février 2014 - Modifié par Ludo2110 le 20/02/2014 à 21:40
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 21 févr. 2014 à 07:29
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.
A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 févr. 2014 à 22:19
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
Ludo2110 Messages postés 6 Date d'inscription mardi 18 février 2014 Statut Membre Dernière intervention 25 février 2014
20 févr. 2014 à 23:34
Bonsoir Patrice,

Merci pour votre aide ça fonctionne parfaitement.

Bonne soirée!

Cordialement.


Ludovic.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
21 févr. 2014 à 07:29
De rien, au plaisir de te relire sur le Forum

Cordialement
Patrice
0