On error goto lablel

TRAX44 Messages postés 93 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 20 juillet 2006 - 24 oct. 2003 à 16:28
v.massip Messages postés 48 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 décembre 2008 - 8 déc. 2006 à 10:58
Salut,
j'ai un petit problème avec On Error goto label
si Il ya deux erreur dans le même module ou function la seconden'est pas gérer ce qui créer un erreur fatal qui interrompe le programme.
PS Je ne veux pas utiliser On Error resume next.
TRAX
trax is alive

3 réponses

cs_ludo24 Messages postés 37 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 12 juillet 2007
24 oct. 2003 à 18:06
effectivement, un seul On Error est permis...PAR FONCTION.

La seule astuce consiste alors à s'arranger pour appeler autant de fonctions (ou procédures) que tu as besoin de On Error.
En plus, c'est beaucoup plus propre.
0
Utilisateur anonyme
25 oct. 2003 à 14:46
Par exemple tu fais une fonction comme celle ci (par exemple bien sûr) :
Public Function Rechercher(String1 As String, String2 As String, MotEntier As Boolean, RespectCase As Boolean, debut As Long) As Long

On Error GoTo Fuck1 ' erreur motentier=Null
If MotEntier = True Then
On Error GoTo Fuck2 ' erreur RespectCase=Null
    If RespectCase = True Then
On Error GoTo Fuck3 ' erreur strings=null
Rechercher = InStr(debut, UCase(Chr(0) & String1 & Chr(0)), UCase(Chr(0) & String2 & Chr(0)))
    Else
Rechercher = InStr(debut, Chr(0) & String1 & Chr(0), Chr(0) & String2 & Chr(0))
    End If
On Error GoTo Fuck1 ' erreur motentier=Null
Else
On Error GoTo Fuck2 ' erreur RespectCase=Null
    If RespectCase = True Then
On Error GoTo Fuck3 ' erreur strings=null
Rechercher = InStr(debut, UCase(String1), UCase(String2))
    Else
Rechercher = InStr(debut, String1, String2)
    End If
End If
Exit Function
Fuck1:
MsgBox "Mot Entier n'a pas de valeur", 16, "Erreur : Fuck1"
Exit Function
Fuck2:
MsgBox "Respecte Case n'a pas de valeur", 16, "Erreur : Fuck2"
Exit Function
Fuck3:
MsgBox "String1 ou string2 n'est pas une string ou debut est égale à 0", 16, "Erreur : Fuck2"

End Function


En fait Fuck1 est le premier label et des qu'il y a une erreur ca vas directement a ce label grace a "On error goto Fuck1

Pareil pourles autres Fuck

N'ayant point VbA tester ce code ( il marche sous vb6 ) :-p
0
v.massip Messages postés 48 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 décembre 2008 2
8 déc. 2006 à 10:58
Un "On Error Goto label" ne permet de gérer effectivement qu'une erreur par fonction ou procédure.

Pour remédier à cela sans utiliser de "On Error Resume Next", il faut utiliser l'appel "On Error Resume label".

Le resultat est le même qu'un "On Error Goto label" mais il y a remise à zéro de la gestion des erreurs et donc possibilité de gérer plusieurs erreur dans une même fonction ou procédure...

 
0
Rejoignez-nous