Gérer les erreurs, Excel VBA

Ci-dessous, nous examinerons deux programmes dans Excel VBA. Un programme ignore simplement les erreurs. L’autre programme continue son exécution sur une ligne spécifiée en cas d’erreur.

Les deux programmes calculent la racine carrée des nombres.

RACINE CARRÉE 1

Ajoutez les lignes de code suivantes au bouton de commande «Racine carrée 1».

1. Tout d’abord, nous déclarons deux objets Range. Nous appelons les objets Range rng et cell.

Dim rng As Range, cellule As Range

2. Nous initialisons l’objet Range rng avec la plage sélectionnée.

Set rng = sélection

3. Nous voulons calculer la racine carrée de chaque cellule dans une plage sélectionnée au hasard (cette plage peut être de n’importe quelle taille). Dans Excel VBA, vous pouvez utiliser la boucle For Each Next pour cela. Ajoutez les lignes de code suivantes:

For Each cell In rng
Next cell

Remarque: rng et cellule sont choisis au hasard ici, vous pouvez utiliser n’importe quel nom. N’oubliez pas de faire référence à ces noms dans le reste de votre code.

4. Ajoutez la ligne de code suivante à la boucle.

 En cas d’erreur Reprendre ensuite

5. Ensuite, nous calculons la racine carrée d’une valeur. Dans Excel VBA, nous pouvons utiliser la fonction Sqr pour cela. Ajoutez la ligne de code suivante à la boucle.

cell.Value = Sqr(cell.Value)

6. Quittez Visual Basic Editor et testez le programme.

Résultat:

Conclusion: Excel VBA a ignoré les cellules contenant des valeurs non valides telles que des nombres négatifs et texte. Sans utiliser l’instruction «On Error Resume Next», vous obtiendriez deux erreurs. Veillez à n’utiliser l’instruction «On Error Resume Next» que lorsque vous êtes sûr que ignorer les erreurs est OK.

RACINE CARRÉE 2

Ajoutez les lignes de code suivantes au bouton de commande «Racine 2».

1. Le même programme que Square Root 1, mais remplacez «On Error Resume Next» par:

 On Error GoTo InvalidValue:

Remarque: InvalidValue est choisi au hasard ici, vous pouvez utiliser n’importe quel nom. N’oubliez pas de faire référence à ce nom dans le reste de votre code.

2. En dehors de la boucle For Each Next, ajoutez d’abord la ligne de code suivante:

Exit Sub

Sans cette ligne, le reste du code (code d’erreur) sera exécuté, même s’il n’y a pas d’erreur!

3. Excel VBA continue son exécution sur la ligne commençant par «InvalidValue:» en cas d’erreur (n’oubliez pas les deux-points). Ajoutez la ligne de code suivante:

InvalidValue:

4. Nous gardons notre code d’erreur simple pour l’instant. Nous affichons une MsgBox avec du texte et l’adresse de la cellule où l’erreur s’est produite.

MsgBox "ne peut pas calculer la racine carrée à la cellule" & cell.Address

5. Ajoutez la ligne suivante pour demander à Excel VBA de reprendre l’exécution après avoir exécuté le code d’erreur.

Resume Next

6. Quittez Visual Basic Editor et testez le programme.

Résultat:

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x