Problème On error Goto VBA Excel
Résolu
Ludo2110
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 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.
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:
- Problème On error Goto VBA Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Laisse tomber VLookup et On Error
Essaies :
Cordialement
Patrice
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