Erreur d'objet requis dans Excel VBA - Dépannage

Présentation de l'erreur objet requis

Ce didacticiel vous aidera à résoudre les erreurs d'objet requis dans VBA.

<

<

Présentation des objets

En VBA, un objet est une "chose" comme une feuille de calcul, un classeur, une plage, une forme, une ligne, une colonne, un formulaire utilisateur, un contrôle, etc.

Les objets ont des propriétés (exs : nom, couleur, masqué) et des méthodes (exs : ouvrir, effacer, enregistrer, masquer). Si vous essayez d'appliquer une propriété ou une méthode, VBA a besoin d'un objet valide sur lequel appliquer les propriétés ou les méthodes.

Si vous ne fournissez pas d'objet valide, vous recevrez le Objet requis Erreur.

Ce guide vous aidera à résoudre les erreurs d'objet requis.

#1. Noms de variables explicites/mal orthographiés

Tout d'abord, vérifiez si vous avez mal orthographié le nom de l'objet. Un nom mal orthographié peut provoquer l'erreur d'objet requis.

Cela peut arriver avec des noms d'objet existants :

<>

Ou avec des noms de variables :

<>

Un bon moyen d'éviter les noms de variables mal orthographiés est de vous assurer de déclarer Option Explicit en haut de votre module de code.

1 Option Explicite

Option Explicit vous oblige à déclarer vos variables. Maintenant, lorsque vous déboguez <> votre code, vous recevrez un message vous indiquant que vous devez définir votre variable :

<>

Cela devrait vous aider à comprendre que cette variable est mal orthographiée.

Programmation VBA | Le générateur de code fonctionne pour vous !

#2 Affectations variables

Ensuite, assurez-vous que vous avez correctement affecté vos variables.

Les variables d'objet doivent être affectées à l'aide de Set Object = : <>

<>

Si vous n'utilisez pas Set pour les affectations de variables d'objet, vous recevrez l'erreur Object Required.

<>

De même, les variables non-objet doivent être affectées sans Set :

<>

Si vous essayez d'utiliser Set sur une variable non objet, vous recevrez l'erreur Object Required.

<>

#3 Modules de niveau feuille de travail

Votre code est-il dans un module de niveau feuille de calcul ? Si tel est le cas, vous devrez redoubler de prudence lorsque vous vous référez aux plages nommées sur d'autres feuilles de calcul.

Par exemple, vous pouvez avoir une plage nommée « Date » au niveau du classeur, dans un module de code standard, vous pouvez référencer la plage nommée comme ceci :

1 MsgBox Range("Date").value

Cependant, si vous référencez la plage nommée à partir d'un module au niveau de la feuille de calcul, vous devez définir explicitement la feuille de calcul où se trouve la plage nommée :

1 MsgBox Sheets("Sheet2").Range("Date").value

Sinon, vous rencontrerez une erreur :

<>

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

wave wave wave wave wave