On Eror Resume Next qui ne fonctionne pas ?

cs_Cranberries Messages postés 11 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 27 décembre 2004 - 9 sept. 2003 à 21:32
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 10 sept. 2003 à 13:52
C'est la 1ère que cela m'arrive et je ne comprends vraiment pas.
Je manipule une feuille Excel.

Voilà mon bout de code:

On Error Resume Next
Do While...
...
Selection.AddComment Commentaire

If Err.Number <> 0 Then
If Err.Number = 1004 Then
'Il existe déjà un Commentaire
Commentaire = Selection.Comment.Text + Chr(10) + Chr(10) + Commentaire
Selection.Comment.Delete
Selection.AddComment Commentaire
Else
MsgBox "Erreur Non Prévue N° " & Err.Number & vbCr & Err.Description
End If
End If
Loop

L'idéal serait bien sûr que je puisse savoir si un commentaire existe déjà sur cette cellule mais pas je ne sais pas comment faire.

Merci d'avance pour votre aide.

Cranberries

5 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
10 sept. 2003 à 06:47
tu es tout simplement tombé sur un bug de VB. En fait, il fait une fois ton resume next, masi si tu remonte dasn le conde, à cause de ta boucle, là, ça marche pus

voici une astuce pour bypasser ce problème.

tu es d'accord que seulement un endroit dasn ta boucle peut planté, alors, met ton on error dasn une autre function et à chaque tour de boucle, tu applel la fonction. alors ton on error sera recréer à chaque fois et plantera plus lorsque la boucle détect 2 on error, puisque maintenant, le code est externe à la boucle
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 sept. 2003 à 09:10
c'est pas un bug !! On error resume next ne concerne que l'instruction qui suit......

il suffit alors de mettre 'On error...' avant que tu n'essaie d'ajouter ton commentaire.

By Renfield

[mailto:thomas_reynald@msn.com mailto:thomas_reynald@msn.com]

Aucune touche n'a été blessée lors de la saisie de ce texte.......... ;)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 sept. 2003 à 09:15
ou bien, encore mieux, tu fais un
On Error Goto MONLABEL

et tu place

MONLABEL:

dans ton code, juste avant le teste sur le numero d'erreur.

By Renfield

[mailto:thomas_reynald@msn.com mailto:thomas_reynald@msn.com]

Aucune touche n'a été blessée lors de la saisie de ce texte.......... ;)
0
cs_Cranberries Messages postés 11 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 27 décembre 2004
10 sept. 2003 à 13:15
Nop, même si je mets le On Error devant ma ligne qui pose problème çà ne marche.

Je penche plutôt pour l'hypothèse de Dragon mais je n'ai pas encore essayé

A suivre...

Et merci à vous pour vos réponses.

Cranberries
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
10 sept. 2003 à 13:52
en tout cas moi ça marche.

moi, le cas que ça m'était arrivé, c,est quand je voulais communiquer avec outlook lors de la réception des task

si le task est accepté ou refusé, c'est 2 type de variable différente

donc ce que j,avais fait, dans une boucle

if accapter then
....
elseif refuser
....
end if

pis j'ai 2 fonction accepter et refuser qui retourne un boolean qui captait l'erreur si on pouvasi pas initialiser la variable puisque c'était pas le bon type

la seule façon d'y arriver était d'utiliser 2 méthode séparer de la boucle
0
Rejoignez-nous