Arreter une procedure

Résolu
Signaler
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011
-
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011
-
bonjour à tous je suis nouveau dans  le monde des macros vb je suis actuellement en stage et ma mission et de créer un logiciel avec solidworks de façon à générer automatiquement des segments de pistons de voiture, mobylette, aviation ....
puis par la suite faire automatiquement la mise en plan, actuellement tout sa fonctionne très bien, je suis dans la phase de suppréssion des erreurs.
Pour éviter des sub trop grandes je les sépare de façon à en créer plusieurs

Mon problème c’est que j’ai une sub principale et une sub erreur

Ma sub principale appelle ma sub erreur si pas d’erreur on continue sur la sub principale

Mais si erreur je que la sub principale soit arrêtée  
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

Voila la structure sans toutes les lignes de programme (environ 8500 lignes)

J’ai utilisé exit sub dans la sub erreur mais l’exécution continue dans la sub principale

 

Sub erreur

‘Instruction

End sub

 

Sub Principale

Call erreur

End sub

 

Voila j’espère avoir été assez clair merci

7 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Essaie de passer par une Fonction

Fait un truc du style
Function erreur() As Boolean

'Instruction
'Quand erruer memorise
erreur = True
End Function<hr />

Sub Principale()

If erreur Then Exit Sub

End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut

Oui elle s'execute deux fois

Private Sub principale()
Call Erreur '=> Une premiere fois ici
If Erreur = True Then Exit Sub 'et une seconde ici
End Sub

Regarde ma Sub Principale j'avais simplement mis

Sub Principale()

If erreur Then Exit Sub 'ainsi elle ne sera executer qu'UNE fois

End Sub

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Mais je te l'ai expliquer Il te faut que ta Sub Principale soit

Private Sub principale
If Erreur Then Exit Sub
End If

TU N A PAS BESOIN DE METTRE CALL Erreur

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

merci sa fonctionne trés bien mais il y a un petit probleme car la fonction s'exécute 2 fois de suite et puis elle s'arrète , je ne comprends pas se qu'il se passe
merci
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

j'ai oubler de vous mettre mon programme 

Function Erreur() As Boolean



If ComboBox1.ListIndex = 1 Then
For i = 1 To 3 'je controle 3 textbox pour savoir si elles sont pas vides
    If  Me.Controls("Textbox" & i) = "" Then
       MsgBox "Le textbox: textbox" & i & " est vide", vbExclamation, "ERREUR" ' si elles sont vides msg d'erreur
si il y a une erreur je veux que sa stop la sub principale
       Exit Function
    End If
Next
Erreur = True
End If
End function

Private Sub principale()
Call Erreur
If Erreur = True Then Exit Sub

voila ou j'en suis si sa peut aider merci d'avance
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

merci jrivet d'avoir repondu
je désoler de te contre dire mais meme en mettant If erreur  ma sub s'exécute 2 fois
je t fais un copier/coller exacte de mon prog.

Function Erreur() As Boolean
If ComboBox1.ListIndex = 1 Then
For i = 1 To 3
    If Me.Controls("Textbox" & i) = "" Then
       MsgBox "Le textbox: textbox" & i & " est vide", vbExclamation, "ERREUR"
       Erreur = True
       Exit Function
    End If
Next
End If
End Function
-------------------------------------
Private Sub principale
Call Erreur
If Erreur Then
Exit Sub
End If
meme comme sa il fait 2 fois la boucle voila merci
a+
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

Salut désolé je n'avais pas compris mais c bon j'ai fais la modification sa fonctionne nickel je te remercie du coup de main merci a bientôt <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>