Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Instruction ON error, fonctionne pas.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Vorens

XLDnaute Occasionnel
Bonsoir à tous,


J'essais d'utiliser l'instruction On error mais je n'arrive pas à la faire fonctionner.


Voici le bout de code

Code:
 On Error GoTo TabNonExist
        NbColStruc = Application.WorksheetFunction.CountA(Workbooks(SourceFileCtrle).Sheets(NameTabRac2).Range("1:1")) 'Tail de la structure de la source

J'aimerais que si il y a un erreur dans la ligne

Code:
NbColStruc = Application.WorksheetFunction.CountA(Workbooks(SourceFileCtrle).Sheets(NameTabRac2).Range("1:1"))

le code saute a TabNonExist: ....suite du programme


Le type d'erreur que cette ligne peux avoir est un "erreur 9, l indice n'apartiens pas à la séléction"

Malgré le fait que j'ai mis le On error go to, l'erreur arrête le code lorsque elle ce produit.

Ma question est comment utiliser cette instruction correctement pour que si la ligne contien une erreur, le code effectue un saut plus loin dans la procédure.


Par avance merci de votre aide

Cordialement

Vorens
 
Re : Instruction ON error, fonctionne pas.

Bonsoir
On Error Goto n'est pas fait pour aler "plus loin dans la procédure" mais pour aller ver un gestionnaire d'erreur qui doit se terminer par une intruction Resume pour annuler l'exécution en mode de gestion d'erreur et reprendre l'exécution normale, faute de quoi toute erreur ultérieure plante systématiquement.
Donc la réponse stricte à votre question serait d'aller vers une autre étiquette faisant Resume TabNonExist.
Mais préférez On Error Resume Next, et après l'instruction qui peut planter, If Err = 0 Then et le code à exécuter s'il ny a pas d'erreur.
Cordialement.
 
Re : Instruction ON error, fonctionne pas.

Re,

@Paritec, oui il existe,

@Dranreb, Ok merci pour ses précision sur cette fonction. Si je comprend bien, je peux tester si il y a une erreur lors de l'execution de la ligne avec un If Err = 0. je vais essayer cela

Merci a vous deux pour vos réponses.
 
Re : Instruction ON error, fonctionne pas.

Bonjour le fil

Draneb, désolé de te contredire mais ce que tu dis est faux

On peut faire ce que l'on veut avec un "On Error ..."
On n'est pas obligé de faire un "resume"

La preuve
Code:
Sub test()
  Dim MaVal As Integer
  On Error GoTo Suite
  MaVal = Range("A" & Rows.Count).End(xlDown).Row
  MsgBox "Ce message ne sera pas visible"
  ' En cas d'erreur je viens de suite ici
Suite:
  On Error GoTo 0
  MaVal = 10  ' Ok
  MsgBox maval
  MaVal = Range("A" & Rows.Count).End(xlDown).Row 'non ok et message d'erreur
End Sub

A+
 
Re : Instruction ON error, fonctionne pas.

re,

En fait c'est ce que j'ai fait au debut BrunoM45 et cela a marcher pour une partie de me code, en revanche, lorsque j ai fait la meme chose en peux plus loin dans mon code, cela ne fonctionnais plus. la différence entre les deux fois c'est que lorsque sa ne fonctionne plus, le saut effectuer dans le programme est beaucoup plus long. Peut on en deduire que si il y a un trop grand nombre de ligne de code sauter cette solution ne fonctionne plus ?
 
Re : Instruction ON error, fonctionne pas.

re,


J'ai essayer

On Error Resume Next
NbColStruc = Application.WorksheetFunction.CountA(Workbooks(SourceFileCtrle).Sheets(NameTabRac2).Range("1:1")) 'Tail de la structure de la source
If Err = 0 Then

Mais lors d'une erreur sur cette ligne, le programme s'arrete toujours 🙁

Je rappel que l'erreur obrenu est qui l'onglet dans le quel la fonction count doit etre effectuée n'existe pas
 
Re : Instruction ON error, fonctionne pas.

Draneb, désolé de te contredire mais ce que tu dis est faux

On peut faire ce que l'on veut avec un "On Error ..."
On n'est pas obligé de faire un "resume"
On y est obligé si on veut que l'exécution reprenne en mode normal et non plus en mode de gestion d'erreur, c'est tout.
En mode gestion d'erreur toute erreur plante, quel que soit le On Error qu'on ait pu mettre devant.

Et, vorens, nos messages se sont croisés, ton dernier exemple est édifiant car il n'a que cette explication: l'exécution est à ce moment là en mode de gestion d'erreur car un On Error Goto à joué plus haut, et aucune instruction Resume n'a été exécutée pour l'annuler.
À+
 
Dernière édition:
Re : Instruction ON error, fonctionne pas.

Re,


Je ne peux mettre le fichier, il est beaucoup trop grand mais j'ai trouver pourquoi sa ne marchais pas.

La phrase de Danreb à déclancher en moi la lumière

On y est obligé si on veut que l'exécution reprenne en mode normal et non plus en mode de gestion d'erreur, c'est tout.
En mode gestion d'erreur toute erreur plante, quel que soit le On Error qu'on ait pu mettre devant.

Car j'avais fait un On error go to.
 
Re : Instruction ON error, fonctionne pas.

Re, ah j'avais pas vu l'édite de Danreb,



Tout a fait juste, j'ai corriger mon code et tout fonctionne.

Merci a tous pour vos réponses et idées


Je vous souhiate un très agréable soirée

Cordialement

VOrens
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…