Vous recevez l’erreur d’exécution 4248, 4605 ou 5941 lorsque vous essayez de modifier les propriétés d’un document non ouvert dans Word


Symptômes


Lorsque vous essayez d’utiliser Microsoft Visual Basic pour Applications (VBA) pour modifier les propriétés d’un document, un des messages d’erreur suivants peut s’afficher :
Erreur d’exécution '4248' :

Cette commande n’est pas disponible car aucun document n’est ouvert.
Erreur d’exécution '4605' :
Cette méthode ou propriété n’est pas disponible car une fenêtre de document n’est pas active.
Erreur d’exécution '5941' :
Membre de la collection demandé n’existe pas.

Cause


Ce problème peut se produire si vous n’avez pas un document à ouvrir, ou si le document auquel vous faites référence n’est pas ouvert. Word peut uniquement modifier des propriétés d’un document ouvert (ou visible).

Remarque Ces messages d’erreur peuvent également s’afficher si vous ouvrez le document avec la propriété Visible la valeur
False.

Solution de contournement


Microsoft fournit des exemples de programmation à titre d'illustration uniquement, sans garantie expresse ou implicite, y compris, mais de manière non limitative, toute garantie implicite de qualité et/ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Professionnels du support technique Microsoft peuvent aider à expliquer la fonctionnalité d’une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.
Si votre expérience en programmation est limitée, vous souhaiterez peut-être contacter un partenaire certifié Microsoft ou les services de conseil de Microsoft. Pour plus d’informations, visitez les sites Web de Microsoft :

Partenaires certifiés Microsoft - https://partner.microsoft.com/global/30000104

Services de Conseil de Microsoft - http://support.microsoft.com/gp/advisoryservice

Pour plus d’informations sur les options de support disponibles et sur la façon de contacter Microsoft, visitez le site Web de Microsoft à l’adresse suivante :http://support.microsoft.com/default.aspx?scid=fh; EN-US ; CNTACTMS
Pour plus d’informations sur l’utilisation de l’exemple de code qui est inclus dans cet article, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
290140 OFFXP : comment faire pour exécuter l’exemple de Code à partir des Articles de la Base de connaissances

Les exemples de macro VBA suivants montrent comment modifier la valeur du champ titre dans le
Boîte de dialogue Propriétés . L’exemple suivant inclut également du code pour intercepter l’erreur, au cas où aucun document n’est ouvert et d’afficher un message :
Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Display an error message.
'
MsgBox Err.Description
'
' Clear the error.
'
Err.Clear
Resume Next

End If

End Sub
L’exemple de macro suivant inclut du code qui effectuera les opérations suivantes :
  • Capturer l’erreur, au cas où aucun document n’est ouvert.
  • Dans la récupération d’erreur, créez un nouveau document.
  • Reprendre l’exécution à la ligne qui a provoqué l’erreur.
Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Add a document.
'
Documents.Add
'
' Clear the error.
'
Err.Clear
'
' Run the code that caused the error.
'
Resume

End If

End Sub

Références


Pour plus d’informations sur la façon d’obtenir de l’aide avec VBA, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
305326 OFFXP : ressources de programmation pour Visual Basic pour Applications