Objet VBA requis

Objet requis dans Excel VBA

Les erreurs font partie intégrante du langage de codage, mais le vrai génie réside dans la recherche de l'erreur et la correction de ces erreurs. La première étape dans la correction de ces erreurs est l'intelligence de trouver pourquoi ces erreurs se produisent. Si vous pouvez trouver pourquoi ces erreurs se produisent, il est très facile de corriger ces erreurs sans casser la sueur. Une telle erreur dans le codage VBA est «Objet requis».

Si vous vous en souvenez lors de l'apprentissage des variables et de l'affectation de types de données à ces variables, nous avons également des types de données «Objet». Lorsque le type de données d'objet attribué et si cet objet n'existe pas dans la feuille de calcul ou le classeur auquel nous faisons référence, nous obtiendrions le message d'erreur VBA comme «Objet requis» . Donc, en tant que nouveau codeur, il est courant de déclarer paniquer dans ces situations car au niveau de départ, le débutant ne peut pas trouver la cause de cette erreur.

Pourquoi une erreur d'objet requis se produit? (et… comment y remédier?)

Ok, il faut deux ou trois exemples pour vraiment comprendre pourquoi cette erreur se produit et comment la corriger.

Vous pouvez télécharger ce modèle Excel d'objet VBA requis ici - Modèle Excel d'objet VBA requis

Pour un exemple, regardez le code ci-dessous.

Code:

 Sub Last_Row () Dim Wb As Workbook Dim Ws As Worksheet Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub 

Laissez-moi vous expliquer le code ci-dessus pour vous.

J'ai déclaré trois variables et les deux premières variables font référence aux objets «Workbook» et «Worksheet». La troisième variable fait référence au type de données «Date».

Lorsque les types de données «Objet» sont affectés à la variable, nous devons utiliser le mot clé «Set» pour affecter la référence de l'objet à la variable, donc dans les deux lignes suivantes en utilisant le mot-clé «Set», j'ai attribué le référence de «ThisWorkbook» à la variable «Wb» car cette variable contient le type de données d'objet comme «Workbook» et pour la variable «Ws», j'ai attribué l'objet de feuille de calcul de «Data» worksheet dans ce classeur.

 Définir Wb = ThisWorkbook
 Définissez Ws = ThisWorkbook.Worksheets ("Data")
  • Dans la ligne suivante pour la variable de type de données «Date», j'ai également utilisé le mot-clé «Set» pour attribuer la valeur de la valeur de la cellule A1 dans ce classeur (Wb) et dans la feuille de calcul «Data» (Ws).
 Définissez MyToday = Wb.Ws.Cells (1, 1)
  • Dans la ligne suivante, nous montrons la valeur de la valeur de la variable «MyDate» de la valeur de la cellule A1 dans la boîte de message dans VBA.
MsgBox MyToday
  • Ok, exécutons ce code et voyons ce que nous obtenons en conséquence.

Comme vous pouvez le voir ci-dessus, le message d'erreur VBA apparaît comme «Objet requis» . Ok, il est temps d'examiner pourquoi nous recevons ce message d'erreur.

  • Dans l'image du message d'erreur ci-dessus dans la section code tout en affichant le message d'erreur, il a mis en évidence la partie erreur du code avec la couleur bleue.

  • La question demeure donc de savoir pourquoi nous avons eu cette erreur. La première chose que nous devons voir est ce type de données variable particulier. Revenez à la ligne de code précédente où nous avons attribué le type de données à la variable «MyDate».

  • Nous avons attribué le type de données variable comme «Date» et revenons maintenant à la ligne d'erreur.

Dans cette ligne, nous avons utilisé le mot-clé «Set» alors que notre type de données n'est pas le type de données «Object». Ainsi, au moment où le code VBA voit le mot-clé «Set», il suppose qu'il s'agit d'un type de données objet et dit qu'il nécessite une référence d'objet.

Ainsi, la ligne du bas est «Set». Le mot-clé est utilisé pour faire référence uniquement aux variables d'objet comme la feuille de travail, le classeur, etc.…

Exemple 1

Jetez maintenant un œil au code ci-dessous.

Code:

 Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub 

Dans le code ci-dessus, nous avons utilisé la fonction de feuille de calcul «SOMME» pour obtenir le total des valeurs de cellule de A1 à A100. Lorsque vous exécutez ce code, nous rencontrerons l'erreur ci-dessous.

Oups!! Il indique «Erreur d'exécution '424': Objet requis.

Examinons maintenant de près le code maintenant.

Au lieu d'utiliser «Application», nous avons utilisé par erreur «Application1», ce qui a rencontré l'erreur «Object Required» dans le code VBA.

Si le mot «Option explicite» est activé, nous obtiendrons l'erreur «Variable non définie».

Choses à retenir

  • Objet obligatoire signifie que la référence du type de données d'objet doit être précise.
  • Lorsque l'option mot explicite n'est pas activée dans le codage, nous obtiendrons une erreur Object Required pour les mots variables mal orthographiés et si Option Explicit est activée, nous obtiendrons l'erreur variable non définie pour les mots variables mal orthographiés.