Partage via


Incompatibilité de type (Erreur 13)

Visual Basic est capable de convertir et de forcer de nombreuses valeurs à déclarer des variables de type de données qui n’étaient pas possibles dans les versions antérieures.

Toutefois, cette erreur peut toujours se produire. Les causes et les solutions sont les suivantes :

  • Cause : La variable ou la propriété n’appartient pas au bon type. Par exemple, une variable qui requiert une valeur entière ne peut pas accepter une valeur de chaîne, à moins que la chaîne entière puisse être reconnue comme un entier.

Solution : Essayez de déclarer des variables uniquement entre les types de données compatibles. Par exemple, un Integer peut toujours être attribué à un Long, un Single peut toujours être attribuée à un Double et tous les types (à l’exception d’un type défini par l’utilisateur) peuvent être attribués à un Variant.

  • Cause : un objet a été passé à une procédure qui attend une valeur ou une propriété unique.

Solution : passez la propriété unique appropriée ou appelez une méthode appropriée à l’objet.

  • Cause : un nom de module ou de projet a été utilisé là où une expression était attendue, par exemple :

      Debug.Print MyModule 
    

Solution : spécifiez une expression qui peut être affichée.

  • Cause : vous avez essayé de combiner la gestion d’erreur de base traditionnelle avec des valeurs Variant ayant le sous-type Error (10, vbError), par exemple :

      Error CVErr(n) 
    

Solution : Pour régénérer une erreur, vous devez la mapper à un Visual Basic intrinsèque ou à une erreur définie par l’utilisateur, puis générer cette erreur.

  • Cause : une valeur CVErr ne peut pas être convertie en Date. Par exemple :

      MyVar = CDate(CVErr(9)) 
    

Solution : utilisez une instruction Select Case ou une construction similaire pour mapper le retour de CVErr à une valeur de ce genre.

  • Cause : au moment de l’exécution, cette erreur indique généralement qu’un Variant utilisé dans une expression a un sous-type incorrect ou qu’un Variant contenant un tableau apparaît dans une instruction Print #.

Solution : pour imprimer des tableaux, créez une boucle qui affiche chaque élément individuellement.

Pour plus d’informations, sélectionnez l’élément en question et appuyez sur F1 (sur Windows) ou AIDE (sur Macintosh).

Remarque

Vous voulez développer des solutions qui étendent l’expérience Office sur plusieurs plateformes ? Découvrez le nouveau modèle de compléments Office. Les compléments Office ont un encombrement réduit par rapport aux compléments et solutions VSTO. Vous pouvez les créer à l’aide de pratiquement n’importe quelle technologie de programmation web, telle que HTML5, JavaScript, CSS3 et XML.

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.