On error goto problème [Résolu]

Signaler
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous
J'ai un souci avec la fonction : on error goto...

Voilà mon programme :

Private Sub cherch_Click()


On Error GoTo erreur1


Dim a, i, c, b, e As Integer
Dim salmin As Integer
Dim salmax As Integer
Dim d As String
(...)
If z1 + z2 + z3 = 5 Then
Sheets("cherche").Select
Range("A40", "CU" & c + 9).Select
Selection.Copy
Sheets("cherchefinal").Select
Cells(40, 1).Select
ActiveSheet.Paste
End If


erreur1:
MsgBox "L'activité choisit n'a pas été trouvée, vérifiez que l'ortographe est bonne et qu'aucun accent n'ait été oublié"
Exit Sub
End Sub

Quand il y a une erreur, erreur1 marche bien mais le problème est que meme quand il n'y a pas d'erreur, quand le programme est rendu à la ligne end if (après activesheets.paste) au lieu de passer a end sub il m'affiche le msgbox

COMMENT SA SE FAIT ???
A voir également:

16 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,


Tu devrais plutôt gérer le numéros d'erreur voici une petite correction de ton code :


Private Sub cherch_Click()
Dim RetourNuméro as Integer


On Error GoTo erreur1


Dim a, i, c, b, e As Integer
Dim salmin As Integer
Dim salmax As Integer
Dim d As String
(...)
If z1 + z2 + z3 = 5 Then
Sheets("cherche").Select
Range("A40", "CU" & c + 9).Select
Selection.Copy
Sheets("cherchefinal").Select
Cells(40, 1).Select
ActiveSheet.Paste
End If


erreur1:
If retourNuméro > 0 then
MsgBox "L'activité choisit n'a pas été trouvée, vérifiez que l'ortographe est bonne et qu'aucun accent n'ait été oublié"
Exit Sub
End if

End Sub

A+
Exploreur


 
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Etoumat, excuse-moi d'en mettre un peu plus, mais ton problème n'est pas vraiment résolu...

Peut-être que je me trompe, mais je pense que tu ne fais pas la différence entre Exit Sub et End Sub

Regarde bien comment j'ai écrit le petit bout de code que j'ai mis
EXIT SUB => avant l'étiquette
END SUB => à la fin

Ça me paraît impossible que ça ne fonctionne pas chez toi, peu importe les plates-formes que tu utilises.

Utilisé de cette façon, il n'est aucunement nécessaire de vérifier si Err.Number > 0
Et si tu mets Exit Sub tout juste avant le End Sub, ça ne sert strictement à rien.

Bonne programmation

PS: je ne sais même pas à quoi servent ces points...  ¦¬)

MPi
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Explorer > cela ne résound pas le problème.

etoumat > Il te manque la sortie de la procedure en l'absence d'erreur :

.....
End If
ExitSub

erreur1:
........

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

sinon ta la solution stupide d'utiliser une variable boolean dont tu change la valeur just avan:

dim erreur as boolean
dim...
erreur = false
on error Goto error1
.....
....
....

erreur =true

error1: if erreur = false then msgbox.....
...
end sub
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Ben voui! lol, manquer : Mais le Exit sub comme tu le suggères plus rapide

Erreur1:
RetourNuméro = Err.number
If RetourNuméro > 0 then
Blabla
End if






A+
Exploreur
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
sobullshit > "...

sinon ta la solution stupide ..." Oui!!!! Heureusement que tu l'as préciser toi-même

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

Merci à vous.
J'ai trouvé une solution qui se rapproche beaucoup des votres à savoir :

erreurcherche:
If Err.Number <> 0 Then
MsgBox "L'activité choisit n'a pas été trouvée, vérifiez que l'ortographe est bonne et qu'aucun accent n'ait été oublié."
Exit Function
End If

Encore merci à vous bonne fin de journée tchao
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Etoumat, comme Casy te disait, avant une gestion d'erreur, tu devrais toujours mettre un
Exit Sub (ou Exit Function, selon le cas)

C'est l'ABC de la gestion d'erreur

MPi
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Cool...Pense, que les solutions qui t'on été proposées t'on conduit à ta réponse...Alors pense aux autres, qui peuvent lire ton post...

A+
Exploreur
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

MPi > Je met toujrous un exit sub ou exit function ( regarde bien mon premier programme yen avai un)

Exploreur > "Pense, que les solutions qui t'on été proposées t'on conduit à ta réponse...Alors pense aux autres, qui peuvent lire ton post..."

Sa veut dire quoi ?? Je ne vous ai pas remercié ??
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Ton Exit Sub est après l'étiquette d'erreur... Il faut le mettre avant

Sub ABC()
On Error goto Erreur
... code
Exit sub
Erreur:
...gestion d'erreur
End sub

Ce que Exploreur dit (je pense), c'est que tu devrais cliquer le bouton vert "Accepter..." si une réponse t'a aidé à régler ton problème.

MPi
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

Ba enfaite quand je met l'étiquette d'erreur après le exit sub j'ai un message d'erreur au niveau du "on error goto" --> il ne trouve pas l'étiquette.
$De plus je suis tout a fait d'accord d'accepter une réponse si elle nous à servi ( en l'occurence je n'ai pa trouvé le code moi meme je l'ai trouvé sur un autre site donc je rajoutait juste à vos proposition celle que j'avai trouvé) mais bon si ca te pait plaisir...

Sur ce bonne journée a tous et merci quand meme de vous crevé les méninges pour de pauvres débutant comme moi 
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

ça veut dir que ta pa accepté toutes ses réponses et donc qu'il a gagner moins de points, il demande que tu acceptes tout ce qu'il a dit
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Bonsoir à tous,

Pour être plus clair :

Etoumat >> Cela m'est égal que tu valides ma réponse ou pas, car la plus propre et la plus optimisée est la plus simple , car en faite ma réponse n'est pas optimisée..Je me suis mal exprimé..
Svp, retire la réponse que tu ma validé, svp.
C'est bizarre, quand tu dis quand je met l'étiquette aprés le Exit Sub, le On Error Goto, ne trouve pas l'étiquette, j'avoue que je suis perdu là..

Sobullshit >> En ce qui me concene, les points ne sont pas ma priorité, j'en ai c'est bien, j'en ai pas c'est pas grave.
Maintenant pour te démontrer que cela n'est pas ma priorité, je peux demander à un admin, de m'enlèver des points, si tu veux, et pour te prouver ce que je dis..
Ma priorité qui n'est pas toujours logique ou sûr, et t'aider les gens..

A+
Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,


Dernière petit chose pour Sobullshit >> Ne me fait pas passé pour ce que je ne suis pas SVP.

A+
Exploreur
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

Hum Hum je suis désolé je ne savait pas qu'il y avait un système de point. Bref on sent fou. Pour en revenir au programme, je travaille malheureusement sur windows nt avec donc excel 97 ou 2000. Et le problème est qu'avec ces versions il y a plein de problème. En l'occurence j'avai déjà essayé de mettre mon étiquette dans un module, après un end sub ou meme encore dans une autre procédure mais à chaque fois j'avais une erreur au niveau du "on error goto" je ne sait pas pourquoi. Quoi qu'il en soit maintenan tout marche très bien mon programme ne plante plus et tous ce que je voulais faire se fait.
Je remercie donc toutes les personnes qui passent de leur temps à en aider d'autres et qui sait peut être que jpourrai vous donner des tuyau un de c 4.

TCHAO.........