Les utilisateurs rencontrent souvent diverses erreurs VBA. Ci-dessous, nous vous proposons plusieurs stratégies pour les aborder et les résoudre. Nous présenterons des techniques que vous pouvez utiliser pour interroger le code pendant les tests, ainsi que des méthodes pour détecter les erreurs lors de l’exécution.

Types d’erreurs VBA pour Excel

Nous avons classé les erreurs de codage en trois groupes. Nous examinerons quelques exemples pour chaque groupe, puis présenterons  la manière dont vous pouvez les étudier et les résoudre.

 1. Erreurs de syntaxe – une ligne particulière de code n’est pas écrite correctement

 2. Erreurs de compilation – problèmes qui se produisent lorsque des lignes de code sont compilées, même si les lignes individuelles de code semblent logiques

 3 Erreurs d’exécution – Lorsque le code est normalement correct en principe, mais une action de l’utilisateur ou des données utilisées provoquent des erreurs inattendues.

 Certaines erreurs de syntaxe

 VBA définit certaines règles qui sont requises dans certaines situations. Par exemple, si vous exécutez une instruction IF conditionnelle dans votre code, vous devez copier les règles de syntaxe suivantes dans la première ligne de l’instruction IF (test logique)… Then ;

Comment détecter une erreur de syntaxe ?


 L’éditeur VBA met en évidence les erreurs de syntaxe en rouge afin que vous puissiez facilement les identifier et les résoudre. Lorsque vous essayez d’exécuter votre code ou de commencer une nouvelle ligne, vous verrez le message d’erreur de syntaxe ci-dessous.

 Erreur de syntaxe de base

Pour vous assurer que la vérification s’effectue au fur et à mesure de la frappe, activez “Vérification automatique de la syntaxe” dans le menu Options. Résolution des erreurs de syntaxe

 Comment Résoudre à un problème d’erreurs de syntaxe

Très souvent, le texte rouge suffit à identifier l’erreur. Mais si vous êtes toujours bloqué, recherchez sur le Web la phrase “if statement syntax vba” ou toute variante qui répond à vos besoins, et vous trouverez de nombreux exemples de la ligne particulière que vous essayez d’écrire.

 Que sont les erreurs de traduction / Compilation ?

 Les erreurs du compilateur font référence à une plus grande variété d’erreurs VBA qui incluent des erreurs de syntaxe. Les erreurs du compilateur indiquent également des problèmes avec votre code dans son ensemble. La syntaxe de chaque ligne individuelle peut être correcte, mais combinées, vos lignes de code n’ont aucun sens. Les erreurs du compilateur sont mises en évidence lorsque le code est compilé ou exécuté.

 Comment identifier une erreur de traduction ?

 Des erreurs de compilation sont affichées dans la boîte de dialogue VBA lors de l’exécution du code VBA, comme illustré dans les exemples ci-dessous.

 Si votre projet est long ou complexe et contient de nombreuses routines, il peut être utile de compiler le code avant de l’exécuter. Cela évite les situations où la moitié de votre code s’exécute avec succès et reçoit ensuite un message d’erreur. Pour compiler le code VBA, cliquez sur le menu Debug → Compile VBA Project.

 Exemple 1

 Erreur du compilateur due à la partie “End if” manquante d’un programme IF. Chaque ligne de code est correcte, mais ensemble, elles ne représentent pas une instruction IF complète.

 Exemple 2

 Dans cet exemple, le processus de compilation VBA a rencontré une erreur de syntaxe surlignée en rouge. VBA indique qu’il manque au code ci-dessous une parenthèse qui ferme la fonction.

 Exemple 3

 Les erreurs du compilateur sont courantes lors de l’utilisation de l’option Explicit et se produisent lorsqu’une variable n’est pas explicitement définie. Lorsque l’option Explicit est activée, l’instruction Dim doit déclarer toutes les variables avant de pouvoir les utiliser dans votre code.

 Résolution des erreurs de compilation


 Les erreurs de compilation VBA empêchent ces routines de fonctionner. Tant que vous ne les aurez pas corrigés, VBA ne pourra pas interpréter correctement votre code. Les messages d’erreur fournissent souvent des conseils plus utiles que les erreurs de syntaxe.

 Si vous ne pouvez pas identifier immédiatement le problème avec le message d’erreur, essayez d’utiliser le Centre d’aide Microsoft pour obtenir des instructions détaillées sur la manière d’écrire une instruction ou une fonction.

 Les erreurs d’exécution dans dans VBA sur Excel

 Après avoir corrigé les erreurs de syntaxe et de compilation, vous êtes prêt à tester ou à exécuter correctement le code pour voir dans quelle mesure il exécute les opérations ou les calculs souhaités. Nous appelons le cycle de test, ou l’exécution en temps réel du code, un “run”.

 Les erreurs d’exécution ne peuvent pas être détectés simplement en regardant le code ; ils sont causés par votre code interagissant avec certaines entrées ou données à ce moment-là.

Les erreurs d’exécution sont généralement causées par des données inattendues transmises au code VBA, des données incompatibles, une division par zéro et des plages de cellules spécifiées inutilisables. Les erreurs d’exécution sont également les plus polyvalentes et les plus difficiles à détecter et à corriger.

 Détecter les erreurs d’exécution

La fonction de débogage VBA met en surbrillance le code du problème en jaune et nous donne un petit indice sur la cause du problème.

 Exemple 1

 Bien que le code ci-dessous divise simplement un nombre par un autre, il y a des cas où cela n’est pas possible. Par exemple, si la cellule A1 = 2 et la cellule A2 = 0, il n’est pas possible de diviser par zéro. La boîte d’erreur d’exécution comprend un bouton de débogage qui met en surbrillance le code du problème.

Exemple 2

 Dans cet exemple, j’ai créé une table pour collecter les noms de n sociétés dans une feuille de calcul. J’ai ensuite essayé de référencer un sixième élément, qui peut ou non exister au moment de l’exécution. VBA affiche un message d’erreur d’exécution et me permet d’appuyer sur Debug pour étudier le problème.

 Après avoir appuyé sur la touche de débogage, VBA met en surbrillance la ligne de code à l’origine du problème. Maintenant, c’est à moi d’utiliser le message “Index hors limites” pour comprendre ce qui ne va pas. Une erreur non indexée signifie généralement que votre code est fondamentalement correct, mais que l’élément  que vous recherchez est introuvable. Cela se produit principalement lors du référencement de cellules ou de plages dans Excel et de tableaux dans le code VBA.

Pour s’assurer que le débogage est activé. Laissez l’option sélectionnée.

 Résolution des erreurs d’exécution

 Étant donné que les erreurs d’exécution sont de nature variée et complexe, les solutions sont également variées. Il existe deux manières générales de réduire les erreurs d’exécution :

 Détection d’erreurs  C’est une bonne idée de réfléchir aux scénarios possibles que votre code pourrait rencontrer. Mieux encore, testez votre code avec des données pratiques ou  de vrais utilisateurs. Cela vous permet de détecter de tels scénarios dans votre VBA et le code donnera des résultats différents  selon qu’il y a ou non des erreurs.

 Exemple 1

 Ici, la ligne “On Error Resume Next” force le code à continuer même si une erreur est détectée. Nous utilisons ensuite le test If Err > 0 pour générer un message d’avertissement uniquement en cas d’erreur. “On Error Goto 0” réinitialise VBA à son état par défaut.

 Exemple 2

 Ici, le code calcule le revenu quotidien en fonction du revenu mensuel et du nombre  de jours spécifié. Si le nombre de jours n’est pas donné, on passe à la section “NoDaysInMonthProvided:” définie dans le code, où on prend par défaut le nombre moyen de jours dans le mois. Bien que simple, il montre clairement comment identifier une erreur et passer à un autre point du code.

 Des instructions d’utilisation claires

 Une documentation claire et des étiquettes de feuille de travail garantissent que les utilisateurs interagissent avec le modèle comme vous le souhaitez. Cela permet de les éviter si vous entrez du texte au lieu de chiffres ou si vous laissez des zéros qui peuvent affecter le code ultérieurement.


Découvrez également :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

vingt − 17 =