VBA IFERROR

Un code écrit plusieurs fois donne l'erreur et les chances d'obtenir une erreur dans une erreur complexe sont assez élevées. Comme Excel, la fonction IFERROR est utilisée lorsqu'il y a des chances d'obtenir une erreur. IFERROR transforme le message d'erreur en d'autres instructions de texte selon les besoins et définis par l'utilisateur. De même, VBA IFERROR fonctionne de la même manière que la fonction IFERROR d'Excel. Il transforme le message d'erreur en texte défini par l'utilisateur.

Cette erreur se produit principalement lorsque nous effectuons une fonction mathématique ou si nous mappons des données dans un format différent. IFERROR gère de nombreuses erreurs, dont certaines sont:

#VALUE !, # N / A, # DIV / 0 !, #REF !, #NUM !, #NULL! Et #NAME?

Exemple 1

Maintenant, cette fonction IFERROR peut également être implémentée dans VBA. Maintenant, pour comparer les résultats d'Excel avec VBA IFERROR, nous allons insérer une colonne dans laquelle nous appliquerons l'instruction VBA IFERROR comme indiqué ci-dessous.

Vous pouvez télécharger ce modèle Excel VBA IFERROR ici - Modèle Excel VBA IFERROR

Pour cela, nous considérons les mêmes données et insérons une autre colonne où nous effectuerons VBA IFERROR. Accédez à la fenêtre VBA et insérez un nouveau module à partir du menu Insertion, comme indiqué ci-dessous.

Maintenant, dans un module nouvellement ouvert, écrivez Sous-catégorie avec n'importe quel nom. Ici, nous avons donné le nom de la fonction de fonctionnement comme indiqué ci-dessous.

Code:

 Sub VBA_IfError () End Sub 

Maintenant, avec l'aide d' ActiveCell, nous allons sélectionner la première cellule de référence, puis utiliser directement la formule IFERROR avec la cellule de référence (RC) -2 divisée par -1 nombre de cellules. Ce qui signifie que nous divisons la cellule A par la cellule B dans le premier argument. Et dans le deuxième argument, écrivez toute déclaration que nous voulons à la place de l'erreur. Ici, nous utiliserons le même état que nous avons vu ci-dessus, c'est-à-dire «Aucune classe de produit».

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" End Sub 

Sélectionnez maintenant la cellule de plage qui serait notre dénominateur. Ici, nous avons sélectionné la cellule C2.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" "Range (" C2 "). Sélectionnez End Sub 

Maintenant, faites glisser la formule vers les cellules ci-dessous où nous devons appliquer IFERROR jusqu'à ce que le tableau ait les valeurs.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Sélectionnez Selection.End (xlDown) .Select End Sous 

Maintenant, arrivons à la dernière cellule de la colonne à l'aide de la commande Range où nous devons faire glisser la formule IFERROR. Ici, notre limite se termine à la cellule D6.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Sélectionnez Selection.End (xlDown) .Select Range ("D6"). Sélectionnez End Sub 

Maintenant, pour faire glisser l'IFERREUR appliquée vers le bas vers toutes les cellules applicables, sélectionnez la plage Plage de fin (ou dernier) jusqu'à la cellule de formule appliquée par fin (xlUp) sous Plage .

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Sélectionnez Selection.End (xlDown) .Select Range ("D6"). Sélectionnez la plage (Selection, Selection.End (xlUp)). Sélectionnez End Sub 

Comme nous faisons Ctrl + D pour faire glisser les valeurs des cellules vers le haut vers toutes les cellules sélectionnées dans Excel, ici dans VBA, Selection.FillDown est utilisé pour remplir les mêmes valeurs de cellules vers le haut dans toutes les cellules sélectionnées.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Sélectionnez Selection.End (xlDown) .Select Range ("D6"). Sélectionnez la plage (Selection, Selection.End (xlUp)). Sélectionnez Selection.FillDown End Sub 

Ceci termine le codage de VBA IFERROR. Maintenant, exécutez le code complet en cliquant sur le bouton de lecture comme indiqué dans la capture d'écran ci-dessous.

Comme nous pouvons le voir ci-dessus, dans la colonne D à partir des cellules 2 à 6, nous avons obtenu nos résultats.

Il existe un autre format et une autre façon d'appliquer IFERROR dans VBA. Pour cela, nous considérerons un autre ensemble de données comme indiqué ci-dessous. Ci-dessous, nous avons les données de vente de certains produits dans la colonne A et la qualité vendue dans la colonne B. Et nous devons mapper ces données à la cellule F2 en référence au type de produit Ordinateur portable . Maintenant, les données du premier tableau ont # N / A dans la cellule B3 avec une quantité épuisée pour ordinateur portable, ce qui signifie que les données source elles-mêmes ont une erreur. Et si nous recherchons les données du premier tableau dans la cellule F2, nous obtiendrons le même # N / A ici.

Pour cela, ouvrez un nouveau module dans VBA et écrivez Sous-catégorie avec le nom d'une fonction exécutée.

Code:

 Sub VBA_IfError2 () End Sub 

Sélectionnez la plage où nous devons voir la sortie ou activez directement cette cellule par ActiveCell suivie de la ligne de commande point (.) Comme indiqué ci-dessous.

Code:

Sélectionnez maintenant FormulaR1C1 dans la liste qui est utilisée pour insérer une fonction Excel.

Maintenant, utilisez également la même formule que celle utilisée dans la fonction Excel dans VBA.

Code:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Error In Données "") "End Sub 

Maintenant, sélectionnez la cellule où nous devons voir la sortie dans Range. Ici, nous avons sélectionné la cellule F3.

Code:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Error In Data "") "Range (" B8 "). Sélectionnez End Sub 

Maintenant, compilez et exécutez le code complet à l'aide de la touche F5 ou manuellement et voyez le résultat comme indiqué ci-dessous.

Comme nous pouvons le voir dans la capture d'écran ci-dessus, la sortie du type de produit Laptop, du premier tableau # N / A est avec le texte d'erreur " Error In Data " tel que défini dans le code VBA.

Avantages de la fonction VBA IFERROR

  • Il faut peu de temps pour appliquer la fonction IFERROR via VBA.
  • Résultat de la fonction d'insertion Excel et du codage VBA IFERROR, les deux sont identiques.
  • Nous pouvons également formater ou coller spécialement la formule appliquée pour éviter tout autre problème.

Inconvénients de la fonction VBA IFERROR

  • IFERROR avec cette méthode, référencer la plage de cellules sélectionnées peut être perturbé car le tableau a des cellules limitées.

Choses dont il faut se rappeler

  • Nous pouvons enregistrer la macro et modifier le codage enregistré selon nos besoins.
  • N'oubliez pas d'enregistrer le fichier en tant qu'Excel compatible avec les macros, afin que nous puissions utiliser la macro appliquée ou créée plusieurs fois sans aucun problème.
  • N'oubliez pas de compiler le code complet avant de terminer la fonction de commande. Par cela, nous pouvons éviter ou corriger toute erreur encourue.
  • Vous pouvez appliquer le code créé dans un bouton ou un onglet et l'utiliser en un seul clic. C'est le moyen le plus rapide d'exécuter le code.
  • Le meilleur moyen d'éviter toute modification après l'exécution du code consiste à coller des cellules complètes spéciales afin qu'il n'y ait aucune formule dans la cellule.

Articles recommandés

Cela a été un guide pour la fonction IFERROR VBA Excel. Ici, nous avons discuté de la façon d'utiliser la fonction IFERROR dans VBA ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Tableaux VBA dans Excel
  2. Guide du format de nombre VBA
  3. Guide de recherche VBA
  4. Comment utiliser VBA Do While Loop?

Catégorie: