Tester si un fichier Word est déjà ouvert à partir d'Excel

olggapt

XLDnaute Junior
Bonjour à tous,

Je suis sous Excel 2010. Je bloque sur ce code dont l'objet est de tester si un fichier Word est ouvert.
Pouvez vous m'aider ? Mille mercis.
Question complémentaire : Comment tester sans ouvrir l'application à chaque fois Word ?

HTML:
Dim WordApp As Object
Dim WordDoc As Object

'les variables suivantes ont déjà été déclarées
chemin = Workbooks(ActiveWorkbook.Name).Path
fichier = ActiveWorkbook.Name

On Error Resume Next

Set WordApp = CreateObject("word.application")
    DoEvents
    WordApp.Visible = True
    Set WordDoc = WordApp.Documents("MonFichier.doc")

If Not WordDoc Is Nothing Then
        MsgBox "le fichier est ouvert"
End If
 

Gmollet

XLDnaute Nouveau
Re : Tester si un fichier Word est déjà ouvert à partir d'Excel

Je ne me connais pas très bien en Word, mais je peux te conseiller un angle d'attaque :

Tu tentes d'abord de rendre active la fenetre de ton fichier Word, tu fais comme si tu savais qu'elle existait.
Puis tu encapsules l'erreur avec un goto.
Exemple :

sub exemple()

On error goto fichierFerme

'test une operation comme si le fichier etait deja ouvert

On error goto 0

' blabla si le fichier est ouvert

Exit sub

fichierFerme:

' blabla si le fichier est ferme

end sub
 
C

Compte Supprimé 979

Guest
Re : Tester si un fichier Word est déjà ouvert à partir d'Excel

Bonjour Olggapt,

Tu peux utiliser cette petite fonction pour savoir si ton fichier est ouvert ou pas
VB:
Function FichierEstOuvert(ByRef FichierTest As String) As Boolean    Dim Fichier As Long
    On Error GoTo Erreur
    Fichier = FreeFile
    Open FichierTest For Input Lock Read As #Fichier
    Close #Fichier
    FichierEstOuvert = False
    Exit Function
Erreur:
    FichierEstOuvert = True
End Function

Il suffit d'envoyer le chemin complet à la fonction, du style
Code:
If FichierEstOuvert("C:\MonFichier.doc") then

A+
 

Staple1600

XLDnaute Barbatruc
Re : Tester si un fichier Word est déjà ouvert à partir d'Excel

Bonjour à tous

olggapt
Tu m'inquiètes là?
Celle de Microsoft ne fonctionne pas? La fonction ci-dessous vient du lien de mon précédent message.
Code:
Function FileLocked(strFileName As String) As Boolean
   On Error Resume Next
   ' If the file is already opened by another process,
   ' and the specified type of access is not allowed,
   ' the Open operation fails and an error occurs.
   Open strFileName For Binary Access Read Write Lock Read Write As #1
   Close #1
   ' If an error occurs, the document is currently open.
   If Err.Number <> 0 Then
      ' Display the error number and description.
      MsgBox "Error #" & Str(Err.Number) & " - " & Err.Description
      FileLocked = True
      Err.Clear
   End If
End Function
 
Dernière édition:

olggapt

XLDnaute Junior
Re : Tester si un fichier Word est déjà ouvert à partir d'Excel

Bonjour Stapple1600
je ne voulais pas te froisser mais comme celle de Bruno marchait, je n'ai pas essayé ta procédure
Je vais le faire pour te faire un retour
A ton avis, laquelle est la plus indiquée ?
à+
 

Staple1600

XLDnaute Barbatruc
Re : Tester si un fichier Word est déjà ouvert à partir d'Excel

Re


M'est avis qu'elles sont soeur toutes les deux ;)
L'une cause le gaulois
L'autre speak l'angliche

Mais au bout du compte , comme le chantait Catherine ,
Ce sont des soeurs jumelles ;)

Donc choisis celle de Bruno, vu que nous sommes ici au pays des 365 fromages et qu'on cause la langue que la belle Catherine chante.;)

PS: Je suis point froissé que que je suis pas une chemise ;)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof