Partager via


Variable objet ou variable bloc With non définie

Une variable objet non valide est référencée. Cette erreur peut se produire pour plusieurs raisons :

  • Une variable a été déclarée sans qu’un type soit spécifié. Si une variable est déclarée sans qu’un type soit spécifié, elle est de type Object par défaut.

    Par exemple, une variable déclarée avec Dim x sera de type Object; et une variable déclarée avec Dim x As String sera de type String.

    Conseil

    L’instruction Option Strict interdit tout typage implicite aboutissant à un type Object. Si vous omettez le type, une erreur de compilation se produit. Consultez Option Strict, instruction.

  • Vous tentez de référencer un objet qui a été défini sur Nothing.

  • Vous tentez d’accéder à un élément d’une variable de tableau qui n’a pas été correctement déclaré.

    Par exemple, un tableau déclaré comme products() As String déclenchera l’erreur si vous essayez de référencer un élément du tableau products(3) = "Widget". Le tableau n’a aucun élément et est traité comme un objet.

  • Vous tentez d’accéder au code dans un bloc With...End With avant l’initialisation du bloc. Un bloc With...End With doit être initialisé par l’exécution du point d’entrée de l’instruction With.

Notes

Dans les versions antérieures de Visual Basic ou VBA, l’attribution d’une valeur à une variable sans utilisation du mot clé Set (x = "name" au lieu de Set x = "name") déclenchait également cette erreur. Le mot clé Set n’est plus valide dans Visual Basic .Net.

Pour corriger cette erreur

  1. Définissez Option Strict sur On en ajoutant le code suivant au début du fichier :

    Option Strict On
    

    Quand vous exécutez le projet, une erreur du compilateur s’affiche dans la Liste d’erreurs pour toute variable spécifiée sans type.

  2. Si vous ne souhaitez pas activer Option Strict, recherchez dans votre code toutes les variables qui ont été spécifiées sans type (Dim x au lieu de Dim x As String) et ajoutez le type souhaité à la déclaration.

  3. Vérifiez que vous ne faites pas référence à une variable objet qui a été définie sur Nothing. Recherchez le mot clé Nothingdans votre code et révisez votre code pour que l’objet ne soit défini sur Nothing qu’après l’avoir référencé.

  4. Veillez à ce que toutes les variables de tableau soient dimensionnées avant d’y accéder. Vous pouvez attribuer une dimension quand vous créez le tableau (Dim x(5) As String au lieu de Dim x() As String) ou utiliser le mot clé ReDim pour définir les dimensions du tableau avant d’y accéder pour la première fois.

  5. Vérifiez que votre bloc With est initialisé en exécutant le point d’entrée de l’instruction With.

Voir aussi