Gestion des erreurs VBA

Gestion des erreurs Excel VBA

Dans VBA, lorsque nous travaillons avec des codes, nous pouvons rencontrer de nombreux types d'erreur différents et la façon de résoudre ces erreurs est connue sous le nom de gestion des erreurs, maintenant il peut y avoir des erreurs qui sont faites dans la syntaxe qui excelle elle-même le met en évidence mais quand il y a une erreur qui est hors de portée ou quelque chose qui n'existe pas Excel nous donne une fenêtre contextuelle pour le même, il est important de savoir quel code d'erreur correspond à quelle erreur afin d'identifier l'erreur dans le code.

Dans Excel VBA, lors de l'exécution de tout ensemble de codes, nous obtenons une sorte d'erreurs. Certaines de ces erreurs sont des erreurs de syntaxe, d'autres sont des erreurs non exécutables. L'erreur de syntaxe se produit lorsque l'utilisateur est mis en évidence en rouge par Excel lui-même. Mais quand il y a une autre sorte d'erreur d'exécution, comment la gérer et comment aller au-delà de cela, c'est ce que nous allons couvrir dans cet article.

Outre les erreurs de syntaxe, les autres erreurs d'exécution doivent être gérées lors de l'exécution de tout ensemble de codes. Tout d'abord, permettez-moi de donner un exemple de la façon dont l'autre erreur d'exécution se produit. Jetez un œil au code ci-dessous,

Ceci est un exemple de code lorsqu'il est exécuté, il renverra ce qui est écrit dans la fonction msgbox. Mais comme nous pouvons le voir, dans la deuxième ligne du code, il y a 4/0, ce qui n'est pas possible en termes mathématiques, il renverra donc une erreur d'exécution. Exécutons le code ci-dessus et voyons l'erreur que nous obtiendrons.

C'est l'erreur que nous obtenons lors de l'exécution du code donné. Maintenant, comment gérer cette erreur se fait par la gestion des erreurs.

Il existe deux méthodes pour gérer les erreurs qui sont:

  1. En cas d'erreur Goto, et
  2. En cas d'erreur, reprendre ensuite.

Explication

Comme expliqué ci-dessus, nous obtenons de nombreux types d'erreurs dans VBA, certaines sont liées à la syntaxe et d'autres à l'exécution. Les erreurs de syntaxe sont déjà mises en évidence en couleur rouge, par exemple, reportez-vous à la capture d'écran ci-dessous,

Alors que l'autre est des erreurs d'exécution. Fondamentalement, Excel fera les trois choses suivantes, soit il affichera une erreur ou ignorera cette erreur ou il affichera un certain ensemble d'instructions. Pour effectuer de telles tâches, nous devons donner des instructions et cela s'appelle la gestion des erreurs.

Comment gérer les erreurs dans le code VBA?

Vous pouvez télécharger ce modèle Excel de gestion des erreurs VBA ici - Modèle Excel de gestion des erreurs VBA

Exemple 1

Pour le premier exemple, prenons le premier code que nous avons pris comme démonstration. Dans l'exemple ci-dessus, nous avons vu que le code donne une erreur d'exécution à la deuxième fonction msgbox.

Écrivez le code suivant après avoir ouvert la sous-fonction,

Code:

 Sous-échantillon () En cas d'erreur Reprendre MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Maintenant, lorsque nous exécutons le code ci-dessus, nous voyons que la ligne de code qui contient l'erreur n'est pas exécutée. Excel ignore cette ligne et reprend à la ligne suivante.

Il existe une autre méthode pour gérer l'erreur est vba Goto Statement, nous fournissons une destination Excel à laquelle aller quand il trouve une erreur. Au lieu du code de gestion des erreurs précédent, nous avons inséré, notez le code suivant,

Code:

 Sous-échantillon () En cas d'erreur GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Nous donnons Excel Az comme destination à visiter s'il trouve une erreur. Maintenant, après la msgbox, écrivez un autre code comme ci-dessous,

Code:

 Sous-échantillon () En cas d'erreur GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Terminé: Quitter Sub 

Nous devons maintenant définir la destination az comme ce qu'elle doit faire quand Excel détecte une erreur dans le code.

Code:

 Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Terminé: Quitter Sub az: MsgBox "Ceci est une erreur" & Err.Description End Sub 

Maintenant, lorsque nous exécutons ce code, nous voyons le résultat affiché.

C'est le premier résultat de la boîte de msg et comme nous savons que nous avons une erreur dans la ligne suivante de notre code, voyons le résultat que donnera Excel.

La description d'erreur ci-dessus dans le code nous aide à montrer exactement ce que l'erreur s'est produite dans notre code.

Exemple # 2

Nous avons appris à gérer les erreurs dans nos codes. Regardons un autre exemple de la façon de gérer les erreurs. Considérez le code suivant comme notre deuxième exemple.

Nous avons une erreur quelque peu similaire de l'exemple 1. L'erreur est à la ligne d = i / b. Nous allons maintenant gérer ces erreurs en utilisant les deux méthodes expliquées ci-dessus.

Écrivez le code suivant après avoir ouvert la sous-fonction,

Code:

 Sub Sample2 () On Error Resume Next bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub 

Maintenant, lorsque nous exécutons notre code, nous pouvons voir qu'il ignore la deuxième ligne et affiche simplement la valeur de C.

Le gestionnaire d'erreurs ci-dessus était un CV ensuite, nous allons maintenant utiliser le Go to où nous indiquerons à Excel une destination à aller lorsqu'il rencontre une erreur. Notez le code suivant,

Code:

 Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Le bx est une destination donnée quand il rencontre une erreur après que msgbox D écris le code suivant,

Code:

 Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Quitter Sub 

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

 Sub Sample2() On Error GoTo bx Dim i As Integer , b As Integer , c As Integer , d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub bx: MsgBox " This is another Error " & Err.Description End Sub 

Now when we execute the code we can see that excel first gives us the value for C.

Now in another step, it will give us the prompt we provided it when it encounters an error.

This is how we handle the normal runtime errors in Excel VBA.

Things to Remember

There are a few things we need to remember about Error Handling:

  1. On Error Resume Next Ignores the error.
  2. On Error GoTo Gives excel a destination when it encounters an error.
  3. The description is used to show the exact error occurred to the user.