Partager via


Erreur définie par l’objet ou l’application

Ce message s’affiche lorsqu’une erreur généré à l’aide de la méthode Raise ou d’une instruction Error ne correspond pas à une erreur définie par Visual Basic pour Applications. Il est également renvoyée par la fonction Errorpour arguments qui ne correspondent aux erreurs définies par Visual Basic pour Applications. Par conséquent, il peut être une erreur que vous avez défini ou celle qui est définie par un objet, y compris héberger applications tels que Microsoft Excel, Visual Basic et ainsi de suite. Par exemple, formulaires Visual Basic génèrent des erreurs de formulaire ne peut être générés à partir du code simplement en spécifiant un nombre comme un argument de la élever méthode ou erreur déclaration. Causes et solutions pour cette erreur :

  • Votre application a exécuté une instruction Err.Raisen ou Errorn, mais le nombre n n’est pas défini par Visual Basic pour Applications. S’il s’agissait de ce qui était prévu, vous devez utiliser Err.Raise et spécifier des arguments supplémentaires permettant à un utilisateur final de comprendre la nature de l’erreur. Par exemple, vous pouvez inclure une chaîne de description, la source et l’aide des informations. Pour générer une erreur vous restent, cette approche fonctionnera si vous n’exécutez pas Err.Clear avant régénérant l’erreur. Si vous exécutez Err.Clear tout d’abord, vous devez compléter les arguments supplémentaires pour le élever méthode. Examinez le contexte dans lequel le message d’erreur s’est produite et vérifiez que vous êtes régénérant le même message d’erreur.

  • Il est possible que dans l’accès aux objets à partir d’autres applications, une erreur a été propagée à votre programme qui ne peuvent pas être mappée à une erreur Visual Basic.

Consultez la documentation de tous les objets qu'auxquels vous avez accédé. La propriété Sourcede l’objet Err ne doit pas contenir d’identificateur programmatique de l’application ou de l’objet qui a généré l’erreur. Pour comprendre le contexte d’une erreur renvoyée par un objet, utilisez l’expression On Error Resume Next dans le code qui accède aux objets, plutôt que la syntaxe On Error GoToline.

Répertorier les erreurs récupérables pour l’application hôte

Auparavant, les programmeurs souvent utilisé une boucle pour imprimer une liste de toutes les chaînes de message d’erreur récupérable. En règle générale, cette opération a été effectuée avec un code telle que la suivante :

For index = 1 to 500
    Debug.Print Error$(index)
Next index

Ce code permet toujours de répertorier tous les messages d’erreurs Visual Basic pour Applications, mais il affiche « erreur définie par l’application ou définie par l’objet » pour les erreurs définies par l’hôte comme, par exemple, les erreurs Visual Basic liées aux formulaires, aux contrôles, etc. Nombre d’entre elles sont des erreurs d’exécution récupérables. Vous pouvez utiliser la boîte de dialogue d’aide de Recherche pour obtenir une liste des erreurs récupérables spécifiques à votre application hôte. Cliquez sur recherche, type Trappable dans la première zone de texte, puis cliquez sur rubriques afficher. Sélectionnez erreurs récupérables dans la zone de liste et cliquez sur inférieur atteindre.

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

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.