Gestion des erreurs dans Excel VBA - Macros Excel faciles

Table des matières

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

Situation:

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.

Définir 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 :

Pour chaque cellule dans rng
Cellule suivante

Remarque : rng et cell 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.

cellule.Valeur = Sqr(cell.Valeur)

6. Quittez Visual Basic Editor et testez le programme.

Résultat:

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

Racine carrée 2

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

1. Le même programme que Racine carrée 1 mais remplacez « On Error Resume Next » par :

En cas d'erreur 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 :

Quitter le sous-marin

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 l'exécution à la ligne commençant par « InvalidValue : » en cas d'erreur (n'oubliez pas les deux points). Ajoutez la ligne de code suivante :

Valeur invalide:

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

MsgBox "Impossible de calculer la racine carrée de la cellule" & cell.Address

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

Reprendre Suivant

6. Quittez Visual Basic Editor et testez le programme.

Résultat:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave