On error goto

ninou58

XLDnaute Occasionnel
Re bonjour,
Petit souci, est-il possible avec un on error goto de stopper tout simplement la macro.
erreur:
Exit sub
mais ca arrête seulement ce module alors que moi je veux que ca arrête complètement de tourner.

Est ce possible?

Merci d'avance
 

ninou58

XLDnaute Occasionnel
Re,Bonjour Hervé
ah bah Thierry, j'avais pas du tout compris ça moi!
Moi je pensais que c'étai un nouveau module, et que ça irait dedans en cas d'erreur.
Bref ca revient un peu au reste non? Hormis que cela ne met le pourquoi?
Et en faite tout a l'heure ça a planté, et on pouvait aller dans debugage :( :(

Bon bah du coup, je vais laissé comme j'ai fait, c a dire comme tout a l'heure.

non ce n'est pas grave Hervé,c'est toujours instructif
;)
La question que tu poses c'est ce que j'allais faire :unsure: .

Et oui encore au travail mais plus que 15 min..
Bonne fin de journée
 

ninou58

XLDnaute Occasionnel
C'est re moi,
Petite question, je repère le on error goto requete plusieurs fois, normal? ou je dois faire autre chose?
En faite c'est au ca soù la requête ne fonctionne pas, faut pas que je laisse dans l'embarras :p

Sub requeteweek()
'requête qui permet de récupérer les informations pour le week end
choix = 0
On Error GoTo requete
v_feuille = 'Interm'
v_strsql = blabla


Exit Sub
requete:
MsgBox 'Erreur dans les paramètres, veuillez recommencer,cliquez sur le bouton menu', vbCritical
Call CacherFeuille('Recup')
End

End Sub



Sub requetedetache()
On Error GoTo requete

'requête récupérant les détachés
v_feuille = 'Interm1'
v_strsql = 'blabla

Exit Sub
requete:
MsgBox 'Erreur dans les paramètres, veuillez recommencer,cliquez sur le bouton menu', vbCritical
Call CacherFeuille('Recup')
End
End Sub


Merci d'avance
 

Jam

XLDnaute Accro
Salut Hervé, _Thierry et tous les autres,

Pour répondre à ta question Hervé, je sais que c'est possible...je l'ai déjà fait...mais il y a fort longtemps dans une galaxie lointaine...ooops, m'égare :whistle:

J'vais essayer de retrouver cela.

Ah, euh, d'ailleurs j'mettrais bien cela dans un module de class d'ailleurs...

A+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

C'est normal vu que tu as plusieurs procédures.

Ensuite il faudrait voir tout le code et peut-être qu'une seule procedure etait nécessaire en lui passant des paramètres mais là on aurait changé beaucoup de choses.

Donc dans ton cas c'est normal
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Hervé j'aurais bien vu un truc comme cela

'DEBUT DE MACRO
On
Error GoTo ErrorHandler



'FIN DE MACRO
ErrorHandler:
appelmacrodansmodulespecifique (Err.Number)

End Sub

Sub appelmacrodansmodulespecifique(MonErreur)

Select Case MonErreur
   
Case 6
        MsgBox 'Déclaration
Byte y a pas bon ' & Err.Description
   
Case 9
        MsgBox 'La feuille y a pas bon ' & Err.Description
   
Case 1004
        MsgBox 'Le chemin y a pas bon ' & Err.Description
   
Case Else
        MsgBox 'Une erreur non gérée s
'est produite, téléphoner à Thierry !! lol' & _
        vbCrLf & Err.Number & ' ' & Err.Description
End
Select

End Sub

Message édité par: Pascal76, à: 12/04/2006 17:44
 

Hervé

XLDnaute Barbatruc
re tout le monde :)


oui pascal, c'est bien comme ca que je l'aurais vu aussi, par contre, comment retourner à l'erreur dans le cadre d'une boucle, ce code là ne fonctionne pas :

Sub Bouton1_QuandClic()
Dim el, tablo
'DEBUT DE MACRO
On Error GoTo ErrorHandler
For Each el In tablo
        MsgBox el
Next el


'FIN DE MACRO
ErrorHandler:
appelmacrodansmodulespecifique (Err.Number)

End Sub

Sub appelmacrodansmodulespecifique(MonErreur)

Select Case MonErreur
       
Case 13
                MsgBox 'y'a pas bon mon gars ' & Err.Description
End Select
Resume
End Sub


je sais que je chinoise, mais bon si je ne vous pousse pas d'un vos retranchements, on va plus progressé

salut
 

Jam

XLDnaute Accro
Re à tous,

Tu y était presque, essaye avec:
Code:
Sub MaMacro()
Dim ActionQuanddErreur As Long
...
ErrorHandler:
ActionQuandErreur=GestionErreur(Err)
Select Case ActionQuandErreur
  Case 1
    Resume
  Case 2
    Resume Next
  ...
End Select
End Sub

Function GestionErreur(iErrNum) As Long
    Select Case iErrNum
       Case Erreur_n°1
          ...
          GestionErreur=1
       Case Erreur_n°2
          ...
          GestionErreur=2
       End Select
End Function

Ca devrait marcher B)

Message édité par: jam, à: 12/04/2006 18:35
 

ninou58

XLDnaute Occasionnel
Bonjour tout le monde,
Alors je vois qu'on se motive sur ce on error goto!

Pour ma part j'en ai mis dans chaque macro, avec on error goto erreur au début
et tout a la fin

erreur:
end

J'ai fais ca pour la plupart, après je mettrai un message mais bon.
En tout cas, je sais^pas si ca peut marché dans un module, et la j'y comprend pas grand chose avec le err.number.

Sur ce merci
Bonne journée
:silly: :)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour à tous,

Sorry hier j'ai du partir et n'avait pas vu qu'il y avait une suite à cette 'affaire'.

Je pense que Jam t'a bien répondu déjà. Il me semble avoir vu passer un jour un travail du grand chef à trois plumes (L.L.) avec une magistrale gestion d'erreur, à moins que ce ne soit son acolyte F.S....

Si je retrouve, je posterai un exemple...

Bon appétit
[ol]@+Thierry[/ol]

PS Hervé, félicitation pour les 3000 ;)
 

Discussions similaires

Réponses
6
Affichages
208
Réponses
2
Affichages
204

Membres actuellement en ligne

Statistiques des forums

Discussions
312 836
Messages
2 092 652
Membres
105 479
dernier inscrit
chaussadas.renaud