Re : Erreur 400 après lancement Macro VBA Excel
voici l'aide
Erreur définie par l’application ou définie par l’objet
Office 2013 and later
Ce message s’affiche lorsqu’une erreur générée par la méthode Raise ou l’instruction Error ne correspond pas à une erreur définie par Visual Basic pour Applications. Il est également renvoyé par la fonction Error pour les arguments qui ne correspondent pas aux erreurs définies par Visual Basic pour Applications. Ainsi, il peut s’agir d’une erreur que vous avez définie ou qui a été définie par un objet, notamment des applications hôtes comme Microsoft Excel, Visual Basic, etc. Par exemple, les formulaires Visual Basic génèrent des erreurs liées aux formulaires qui ne peuvent pas être générées par le code en spécifiant simplement un nombre en tant qu’argument à la méthode Raise ou à l’instruction Error. Causes et solutions de ce message :
Votre application a exécuté une instruction Err.Raise n ou Error n, mais le nombre n n’est pas défini par Visual Basic pour Applications. Si ce comportement correspond à ce qui était prévu, vous devez utiliser Err.Raise et indiquer des arguments supplémentaires pour que l’utilisateur final puisse comprendre la nature de l’erreur. Par exemple, vous pouvez inclure une chaîne de description, une source et des informations d’aide. Pour régénérer une erreur que vous avez récupérée, cette méthode fonctionne si vous n’exécutez pas Err.Clear avant de régénérer l’erreur. Si vous exécutez Err.Clear en premier, vous devez indiquer les arguments supplémentaires dans la méthode Raise. Observez le contexte dans lequel l’erreur s’est produite et veillez à régénérer la même erreur.
Il est possible que lors de l’accès aux objets d’autres applications, une erreur, qui s’est reproduite dans votre programme, ne corresponde à aucune erreur Visual Basic.
For index = 1 to 500
Debug.Print Error$(index)
Next index
Consultez la documentation de tous les objets auxquels vous avez accédés. 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 GoTo line.
Remarque Remarque
Dans le passé, les programmeurs faisaient souvent appel à une boucle pour imprimer la liste de toutes les chaînes de messages d’erreur récupérables. Le code utilisé était le suivant :
For index = 1 to 500
Debug.Print Error$(index)
Next index
Remarque Remarque
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 Recherche de l’Aide pour rechercher la liste des erreurs récupérables spécifiques à votre application hôte. Cliquez sur Rechercher, sur type Récupérable dans la première zone de texte, puis cliquez sur Afficher les rubriques. Sélectionnez Erreurs récupérables dans la zone de liste inférieure et cliquez sur Atteindre.
Pour obtenir des informations supplémentaires, sélectionnez l’élément concerné et appuyez sur la touche F1 (dans Windows) ou AIDE (sur Macintosh).