|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : On Error Go dans une boucle [ Divers / General ] (gregcitt)
Informations & options pour cette discussion
|
vendredi 17 novembre 2006 à 16:27:58 |
On Error Go dans une boucle

gregcitt
|
Hello boyz  Mon instruction "On error Go To", prévue pour l'erreur d'une " selection.Find(what:=.......) ne marche qu'une fois. Elle est à l'intérieur d'une boucle For NExt. Le On Error est placé juste avant la recherche, et ça ne marche que pour la première erreur rencontrée, dès que la bouvle a fait un tour, le Goto ne marche plus. ca vous dis qqch?
|
|
|
|
vendredi 17 novembre 2006 à 16:40:37 |
Re : On Error Go dans une boucle

casy
|
Une fois la première erreur rencontrée, l'execution du code est passée au gestionnaire d'erreur et celui-ci est désactivé jusqu'a la fin de la gestion de l'erreur (généralement automatique à la sortie de la procédure). Pendant ce temps là, les erreurs ne sont plus gérées
Si après une première erreur, tu continue l'execution de ton code normal, cette execution sera considérée comme étant le traitement de l'erreur.
Donc après avoir traiter l'erreur, pour pouvoir continuer à executer le code normalement sans sortir de la procédure, il faut passer à terminer la gestion d'erreur, pour relancer le gestionnaire. --> Err.Clear
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
|
|
|
|
vendredi 17 novembre 2006 à 16:41:14 |
Re : On Error Go dans une boucle

kazer04
|
ta mis "exit sub" avant la gestion de ton exeption?
on error MY_EXCEPTION
instruction
exit sub
MY_EXCEPTION :
traitement de l'exeption
end sub
montre nous ton code pour plus de precision
|
|
|
|
vendredi 17 novembre 2006 à 17:40:00 |
Re : On Error Go dans une boucle

gregcitt
|
L'instruction "Err.Clear" est à mon avis ce qui réponds à ma question. Merci bien Mais je n'arrive pas pas à la faire marcher : J'ai essayer de placer le err.clear au début de la boucle, a la fin, juste après l'instruction de Goto (ici c'etait Goto copie, donc juste après le Goto...)
Et voila le code pour kazer
For i = 2 To NbLIgnes Err.Clear If Cells(i, 3) Like "*Somme*" Then Cells(i + 1, 2).Select isin = ActiveCell Windows("POS T0.xls").Activate Range("B:B").Select [B2].Activate On Error GoTo copie ligneisin = Selection.Find(what:=isin, after:=ActiveCell).Row() Rows(ligneisin).Copy copie: Windows("MVT 1.xls").Activate Rows(i + 1).Select Selection.Insert shift:=xlDown Selection.End(xlToLeft).Select
(err.clear)
end if next i
|
|
|
|
vendredi 17 novembre 2006 à 18:00:38 |
Re : On Error Go dans une boucle

jmfmarques
|
le Err clear ne sert ici rigoureusement à rien puisque, dans ta boucle For to tu repasses par un On Error (lequel, conformément à VB, réinitialise automatiquement err à 0
Voilà ce qu'explique VB :
"The Err object's properties are reset to zero or zero-length strings ("") after any form of the Resume or On Error statement and after an Exit Sub, Exit Function, or Exit Property statement within an error-handling routine. The Clear method can be used to explicitly reset Err".
Explique nous avec des mots simples ce que tu cherches exactement à faire (commente ton code tel que tu l'as écrit) et nous verrons ensemble quelle est la meilleure façon de s'y prendre.
|
|
|
|
vendredi 17 novembre 2006 à 19:34:31 |
Re : On Error Go dans une boucle

mortalino
|
Salut, il faut gérer avec le numéro de l'erreur. On Error Resume Next
For i = 2 To NbLIgnes If Cells(i, 3) Like "*Somme*" Then Cells(i + 1, 2).Select isin = ActiveCell
Windows("POS T0.xls").Activate
Range("B:B").Select [B2].Activate If Not Err.Number = XXXXThen ' remplace XXXX par le bon numéro d'erreur ligneisin = Selection.Find(what:=isin, after:=ActiveCell).Row() Rows(ligneisin).Copy End If
Windows("MVT 1.xls").Activate Rows(i + 1).Select Selection.Insert shift:=xlDown Selection.End(xlToLeft).Select End If Next i
On Error GoTo 0
 ~ Mortalino~ @++
--Mortalino-- Le mystérieux chevalier, "Provençal, le Gaulois" /DIV>
|
|
|
|
vendredi 17 novembre 2006 à 22:13:05 |
Re : On Error Go dans une boucle

Dolphin Boy
|
Heu ... Au risque de passer pour un empêcheur de tourner en rond, oserais-je dire que l'utilisation d'un "On error goto" en vba, vb6 (ou antérieur) ou d'un "Try ... Catch" en vb.2005 n'est qu'un pis-aller ? Et un inutile bouffeur de resources ? Oserais-je affirmer que dans 99% des cas, il suffit d'être rigoureux dans le choix des variables, le contrôle des saisies, ... en fait dans la maîtrise de son propre prog ? Peut-être même que le 1% qui reste peut être maîtrisé aussi d'ailleurs. Personnellement, dans mes progs, je contrôle toutes les entrées et sorties et n'ai jamais eu à utiliser les "on error" en vba ou vb6 ni les "try ... catch" en vb.2005 (sauf en phase de test par fainéantise).
A force de laisser la machine gérer les erreurs, on va finir par remplacer les programmeurs par des machines.
|
|
|
|
vendredi 17 novembre 2006 à 22:27:41 |
Re : On Error Go dans une boucle

jmfmarques
|
Et pourtant , cher Dolphin Boy, et pourtant !... Le vieux développeur que je suis te dira que c'est quelquefois justifié, voire incontournable... Un exemple ? OK : Décider de l'utilisation de la première police de caractères disponible sur un PC client parmi une liste de polices possibles, et dans un ordre préférentiel déterminé, sans faire une multitude de tests inutiles d'existence ! et j'en passe, et des meilleures 
|
|
|
|
vendredi 17 novembre 2006 à 22:31:26 |
Re : On Error Go dans une boucle

leSaleGauSS
|
Dolphin Boy => Tu as surement raison mais la plupart des personnes qui débutent en vb utilisent ce genre de fonction pour connaitre les erreurs qu'il peuvent faire ou, comme tu le dis toi même, "en phase de test par fainéantise" . (sans rancune j'espere ) sinon err.description peut aussi faciliter la compréhension de l'erreur Quand je suis là tout va mal 
|
|
|
|
vendredi 17 novembre 2006 à 22:43:55 |
Re : On Error Go dans une boucle

casy
|
Je suis entièrement d'accord avec toi Dolphin, pour VB6, moins pour VB.NET. Le try catch n'a absolument rien à voir avec le on error, c'est même pas comparable.
Cependant, et je suis le premier à ne pas le faire, toutes les routines devraient avoir un gestionnaire d'erreur, car même le code le plus abouti n'est pas à l'abris du bug imprévu. Aucun code ne pourra jamais etre zéro bug, c'est impossible.Et sans gestion de l'erreur, c'est la fermeture brutale de l'appli. Et lorsque derrière tu as une machine, ça peut etre synonime de casse ou pire de mise en danger de personne.
D'accord avec jmfmarques aussi, parfois c'est incontournable.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
|
|
|
Cette discussion est classé dans : boucle, erreur, marche, error, go
Répondre à ce message
Sujets en rapport avec ce message
Impossible de suprimer un repertoire!!! Au secours!!! [ par jeromax ]
Salut,J'ai un gros probleme incroyableJe veux suprimer un répertoire et ça ne marche pas!Plus exactement ça ne marche pas lorsque j'enchaine la créati
Erreur creation EXE [ par noe ]
Bonjour à touslors de la création en VB6 de "exe" voila le message qui apparait fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'e:\work\ut
Afficher des mesures. [ par lamarine ]
Bonjour à tous,J'écris un programme qui accède à un convertisseur A/N à travers com1 et ça marche... Cependant, je n'arrive pas à afficher en boucle l
erreur lorsque un fichier n'est pas trové [ par lucky2222 ]
le probleme, c'est quand je demande au prog de chercher un fichier, et qu'il le trouve, pas de probleme!si il ne le trouve pas, comme je lui ai mis:on
J'ai un autre pb et je veut toujours mourrir [ par cricri2001 ]
Erreur 429 le composant activex ne peut créer l'objet. Si quelqu'un sait comment supprimer ce message d'erreur et que tout marche.Mon programme est fi
Sauriez-vous trouvez l'erreur glissé dans ce code ?! [ par turlut ]
Tout est dans le titre ;) Ceci est un défi ! Sauriez vous retrouver l'erreur qui c'est glissé malencontreusement dans ce code :)If Val(go_ip1) => Val(
AIDEZ MOI SVP !!! Erreur a l'ouverture d'un fichier Excel [ par nicboi ]
En fait j'ai un boucle ou dedan j'ouvre un fichier WordEnsuite ds le fichier je remplace des info du style > > par celle qui n'interesse, puis j'impri
Sortir d'une fonction a partir d'une autre [ par pioug43 ]
J'aimerais pouvoir sortir d'une boucle infini en envoyant soit un mess d'erreur soit toute autre solution qui me permettrai de quitter la boucle a par
Pb avec une boucle [ par mojira ]
bonjours à tous,Si qq pouvais me dire si il y a une erreur dans ce bout de codeFor i = 1 To MaxSockets Load Sock(i) Next icar au moment de lance
On error goto lablel [ par TRAX44 ]
Salut,j'ai un petit problème avec On Error goto labelsi Il ya deux erreur dans le même module ou function la seconden'est pas gérer ce qui créer un er
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|