Types d'erreurs dans VBA pour Excel

Les utilisateurs rencontreront souvent différents types d'erreurs dans VBA. Ci-dessous, nous proposons plusieurs stratégies pour y faire face et les résoudre. Nous passerons en revue les techniques que vous pouvez utiliser pour interroger votre code pendant les tests, ainsi que les méthodes de détection des erreurs lors de l'exécution.

Types d'erreurs dans VBA pour Excel

Tester et rechercher différents types d'erreurs dans le code VBA peut prendre du temps et être frustrant. Il n'est pas rare d'entendre les programmeurs Programmation La programmation est le processus d'écriture d'instructions qu'un ordinateur doit exécuter. C'est similaire à une recette pour les humains. Une recette contient une liste d'actions indiquant que bien plus de 30% de leur temps est consacré aux tests.

Au fil du temps, vous vous améliorerez pour éviter les erreurs, mais il est peu probable que vous écriviez un code parfait pour la première fois. En apprenant à éviter, gérer et traquer les erreurs VBA, vous vous épargnerez une tonne de temps à l'avenir.

Types d'erreurs VBA

Pour faciliter les choses, nous avons classé les types d'erreurs de codage en trois groupes. Pour chaque groupe, nous explorerons quelques exemples, puis discuterons de la manière dont vous pourriez les étudier et les résoudre.

1. Erreurs de syntaxe - Une ligne de code spécifique n'est pas écrite correctement

2. Erreurs de compilation - Problèmes qui se produisent lors de la mise en place de lignes de code, bien que les lignes de code individuelles semblent avoir un sens

3. Erreurs d'exécution - Lorsque le code est généralement correct en principe, mais qu'une action entreprise par l'utilisateur ou les données utilisées entraîne des erreurs inattendues.

Que sont les erreurs de syntaxe?

Les erreurs de syntaxe sont le moyen pour VBA de vous dire si votre code a du sens, aux niveaux les plus élémentaires. On peut faire une simple comparaison avec les règles d'écriture d'une phrase en anglais:

  • Un sujet est requis.
  • Un verbe est requis.
  • Une capitale lettre est nécessaire au début.
  • La ponctuation est requise à la fin.
  • Les objets, adjectifs et autres caractéristiques grammaticales sont facultatifs.

Jane a trouvé 18 erreurs dans son code VBA .

De la même manière, VBA impose certaines règles sur ce qui est requis dans certaines situations. Par exemple, lorsque vous lancez une instruction IF conditionnelle de base dans votre code, vous devez répliquer les règles de syntaxe suivantes pour la première ligne d'une instruction IF;

  • Il doit commencer par If
  • Ensuite doit être un test logique , tel que x> 10
  • Enfin, il doit se terminer par le mot alors

Si NumberErrors> 20 alors

Si vous enfreignez les règles ci-dessus de l'anglais ou du VBA, votre grammaire (anglais) ou votre syntaxe (VBA) est considérée comme incorrecte.

Comment identifier une erreur de syntaxe

L'éditeur VBA met en évidence les erreurs de syntaxe en rouge, vous permettant de les identifier et de les résoudre facilement. De plus, si vous essayez d'exécuter votre code ou de démarrer une nouvelle ligne, le message d'erreur de syntaxe ci-dessous vous sera présenté.

Erreur de syntaxe de base:

Syntaxe de base erro

Boîte de message d'erreur de syntaxe:

Boîte de message d'erreur de syntaxe

Pour vous assurer que les vérifications se produisent pendant que vous tapez, activez la «Vérification automatique de la syntaxe» dans le menu Options.

Vérification automatique de la syntaxe

Comment résoudre les erreurs de syntaxe

Les erreurs de syntaxe représentent des erreurs dans la manière dont une ligne spécifique de votre code est écrite. Ils doivent être corrigés avant de pouvoir exécuter votre code. Avec l'expérience, le texte rouge sera tout ce dont vous aurez besoin pour repérer l'erreur. Mais si vous êtes toujours bloqué, recherchez simplement en ligne «if statement syntax vba» ou la variante qui convient à vos besoins, et vous trouverez de nombreux exemples de la ligne spécifique que vous essayez d'écrire.

Que sont les erreurs de compilation?

Les erreurs de compilation font référence à un groupe plus large d'erreurs VBA, qui incluent des erreurs de syntaxe. Les erreurs de compilation identifient également les problèmes avec votre code lorsqu'il est considéré dans son ensemble. La syntaxe de chaque ligne individuelle peut être correcte, mais une fois réunies, les lignes de votre code n'ont pas de sens. Les erreurs de compilation sont mises en évidence lorsque vous compilez ou exécutez votre code.

Comment identifier une erreur de compilation

Lorsque vous exécutez votre code VBA, les erreurs de compilation seront présentées dans une boîte de dialogue VBA selon les exemples ci-dessous.

Sinon, si votre projet est long ou complexe et implique plusieurs routines, il peut être utile de compiler votre code avant de l'exécuter. Cela évite les situations où la moitié de votre code s'exécute avec succès, puis une erreur apparaît. Vous pouvez compiler votre code VBA en cliquant sur Menu Déboguer → Compiler le projet VBA.

Exemple 1

Une erreur de compilation pour une partie "End if" manquante d'une instruction IF. Chaque ligne individuelle du code est correcte, mais ensemble, elles ne représentent pas une instruction IF complète.

Erreur de compilation - Exemple 1

Exemple 2

Dans cet exemple, le processus de compilation VBA a détecté une erreur de syntaxe, surlignée en rouge. VBA indique que le code ci-dessous manque un crochet fermant sur la fonction.

Erreur de compilation - Exemple 2

Exemple 3

Les erreurs de compilation sont courantes lors de l'utilisation d'Option Explicit et se produisent lorsqu'une variable n'a pas été explicitement définie. Lorsque l'option Explicit est activée, une instruction Dim est requise pour déclarer toutes les variables avant de pouvoir être utilisées dans votre code.

Erreur de compilation - Exemple 3

Comment résoudre les erreurs de compilation

Les erreurs de compilation VBA empêcheront les routines affectées de s'exécuter. Tant que vous ne les corrigez pas, votre code ne peut pas être interprété correctement par VBA. Les boîtes de message d'erreur fournissent souvent des conseils plus utiles que les erreurs de syntaxe.

Si vous ne savez pas immédiatement quel est le problème dans le message d'erreur, essayez d'utiliser le Centre d'aide de Microsoft pour avoir une idée de la manière exacte dont votre instruction ou votre fonction doit être écrite. Voici un exemple du message d'erreur «Bloquer si sans fin si» sur le site Web de Microsoft.

Bloquer si sans fin si

Que sont les erreurs d'exécution?

Une fois que vous avez corrigé les erreurs de syntaxe et de compilation, vous êtes prêt à commencer à tester ou à exécuter correctement votre code pour voir dans quelle mesure il exécute les actions ou calculs souhaités. Nous appelons la période de test, ou exécution en direct du code, «runtime».

Les erreurs d'exécution ne peuvent pas être détectées en regardant simplement le code; ils sont le résultat de l'interaction de votre code avec les entrées ou les données spécifiques à ce moment-là.

Les erreurs d'exécution sont souvent causées par des données inattendues transmises au code VBA, des types de données incompatibles, une division par des zéros inattendus et des plages de cellules définies non disponibles. Les erreurs d'exécution sont également les plus variées et les plus complexes à détecter et à corriger.

Comment identifier les erreurs d'exécution

Le débogage VBA VBA: comment déboguer le code Lors de l'écriture et de l'exécution du code VBA, il est important que l'utilisateur apprenne à déboguer les erreurs de code. L'utilisateur Excel s'attend à ce que la fonction de code met en évidence 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 l'autre, il y a des cas où cela ne sera 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 évidence le code du problème.

Erreur d'exécution - Exemple 1

Erreurs d'exécution - Exemple 1a

Exemple 2

Dans cet exemple, j'ai créé un tableau pour collecter les noms de n entreprises dans ma feuille de calcul. J'ai ensuite essayé de référencer le sixième élément, qui peut exister ou non au moment de l'exécution. VBA présente un message d'erreur d'exécution et me permet d'appuyer sur Déboguer pour enquêter sur le problème.

Erreur d'exécution - Exemple 2

Une fois que j'appuie sur Déboguer, VBA met en évidence la ligne de code à l'origine du problème. Maintenant, c'est à moi d'utiliser le message «Indice hors de portée» pour comprendre ce qui ne va pas. L'erreur d'indice hors plage signifie généralement que votre code est bon en principe, mais que l'élément spécifique que vous recherchez est introuvable. Le plus souvent, cela se produira lors du référencement de cellules ou de plages dans Excel, ainsi que de tableaux dans votre code VBA.

Erreur d'exécution - Exemple 2a

Pour vous assurer que la fonction de débogage est activée, dans le menu Options> Général> Recouvrement des erreurs, l'état par défaut doit être «Interrompre les erreurs non gérées». Laissez l'option cochée.

Pause sur les erreurs non gérées

Comment résoudre les erreurs d'exécution

Les erreurs d'exécution étant variées et complexes par nature, les solutions sont également variées. Les deux méthodes générales pour réduire les erreurs d'exécution sont:

Piège d'erreur

C'est une bonne idée de réfléchir aux scénarios possibles que votre code pourrait rencontrer. Mieux encore, tester votre code sur des données de pratique ou avec de vrais utilisateurs. Cela vous permettra de reconnaître de tels scénarios dans votre VBA, avec un code se ramifiant dans différents résultats, en fonction de l'existence d'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 créer un message d'avertissement, uniquement si l'erreur existe. Le 'On Error Goto 0' réinitialise VBA à son état par défaut.

Interception des erreurs - Exemple 1

Exemple 2

Ici, le code calcule le revenu par jour, basé sur un revenu mensuel et un nombre de jours défini. Si le nombre de jours n'est pas fourni, nous passons à un point défini dans notre code appelé «NoDaysInMonthProvided:», où nous utilisons le nombre moyen de jours dans un mois comme hypothèse de base. Bien qu'il soit simpliste, il montre clairement comment intercepter une erreur et passer à un autre point de votre code.

Recouvrement des erreurs - Exemple 2

Instructions d'utilisation claires

Une documentation claire et des étiquettes de feuille de calcul garantiront que vos utilisateurs interagissent avec votre modèle de la manière que vous avez prévue. Cela aidera à les empêcher lors de la saisie de texte, au lieu de chiffres, ou de laisser des zéros qui pourraient ultérieurement avoir un impact sur votre code.

Résumé

Il existe trois principaux types d'erreurs dans VBA qui peuvent affecter votre code de différentes manières. Il est important d'activer les options de détection d'erreur de VBA, telles que le débogueur et la vérification automatique de la syntaxe. Ils vous aideront à déterminer l'emplacement et la nature des erreurs.

Plus de ressources

Finance est le fournisseur officiel de la certification mondiale Certified Banking & Credit Analyst (CBCA) ™ CBCA ™ L'accréditation Certified Banking & Credit Analyst (CBCA) ™ est une norme mondiale pour les analystes de crédit qui couvre la finance, la comptabilité, l'analyse de crédit et l'analyse des flux de trésorerie , modélisation d'alliances, remboursements de prêts, etc. programme de certification, conçu pour aider quiconque à devenir un analyste financier de classe mondiale. Pour continuer à faire avancer votre carrière, les ressources supplémentaires ci-dessous vous seront utiles:

  • Erreurs #REF Excel #REF Erreurs Excel #REF Les erreurs Excel #REF causent de gros problèmes dans les feuilles de calcul. Apprenez à trouver et à corriger les erreurs #REF dans Excel dans ce tutoriel rapide avec des exemples et des captures d'écran. Un #REF! erreur (le «ref» signifie référence) est le message qu'Excel affiche lorsqu'une formule fait référence à une cellule qui n'existe plus, causée par la suppression de cellules qui
  • Exemples Excel VBA Exemples Excel VBA Excel VBA permet à l'utilisateur de créer des macros qui automatisent les processus dans Excel. Ce guide utilisera des exemples Excel VBA pour montrer comment enregistrer une macro en configurant la macro, comment déclarer des variables et comment référencer des données.
  • Conseils pour écrire VBA dans Excel Conseils pour écrire VBA dans Excel Vous trouverez ci-dessous neuf conseils pour écrire VBA dans Excel. VBA pour Excel présente d'innombrables possibilités de calculs personnalisés et d'automatisation.
  • Méthodes VBA Méthodes VBA Une méthode VBA est un morceau de code attaché à un objet VBA, une variable ou une référence de données qui indique à Excel quelle action effectuer par rapport à cet objet. Copier, coller et sélectionner ne sont que quelques exemples de méthodes VBA pouvant être effectuées.

Recommandé

Crackstreams a-t-il été fermé ?
2022
Le centre de commande MC est-il sûr ?
2022
Taliesin quitte-t-il un rôle critique?
2022