IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Savoir si un fichier word est ouvert


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut Savoir si un fichier word est ouvert
    Bonjour,

    Je souhaiterais faire une fonction qui permettrait de savoir si un fichier word est ouvert. Cette fonction doit s'exécuter sous excel.

    J'ai trouvé sur le site une fonction qui permet de savoir si une session word est ouverte. Je pense que ça pourrait servir, mais je n'ai pas trop compris comment ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Function IsWordOpen() As Boolean
        Dim objWord As Word.Application
        On Error Resume Next
        Set objWord = GetObject(, "Word.Application")
        IsWordOpen = Not objWord Is Nothing
        Set objWord = Nothing    '-- détruire l'objet Word
    End Function
    Je m'en remets donc à votre perspicacité

    Merci !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Correction de mon précédent post :
    Cette fonction te retourne un boolean qui te dis si word est ouvert, pas si le fichier est ouvert.
    A+

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut
    Oui, ça j'avais compris . Je me demande juste comment modifier cette
    fonction pour savoir si un fichier word est ouvert.

    Disons que si ma fonction s'exécutait sous Word, je ne pense pas que j'aurai
    eu de problème car j'aurai tout simplement parcouru l'ensemble des fichiers
    Word ouverts puisqu'il y en aurait au moins un d'ouvert ( celui qui lance la macro).

    Mais à partir d'Excel, je ne vois pas. Ou alors en exécutant la fonction, j'ouvre un fichier Word pour pouvoir utiliser la technique du dessus. Mais c'est moche .

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tiens, j'ai fait ça dans une simple sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub VerifierFichierWordOuvert()
    Dim objWord As Word.Application
    Dim c As Document
    On Error Resume Next
    Set objWord = GetObject(, "Word.Application")
    If Not objWord Is Nothing Then
        Set c = objWord.ActiveDocument
        if not c is nothing then 
             MsgBox c.Name
             Set c = Nothing
        endif
    End If
    Set objWord = Nothing '-- détruire l'objet Word
    End Sub
    Après, tu adaptes

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Pour vérifier depuis Excel si un fichier Word est ouvert:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub ControleSiDocumentWordOuvert()
        Dim Appli As Word.Application
        Dim WordDoc As Word.Document
     
        'nécéssite d'activer la reference Microsoft word xx.x 0bject Library
        On Error Resume Next
        Set Appli = GetObject(, "Word.Application")
        Set WordDoc = Appli.Documents("C:\Documents and Settings\mimi\monFichier.doc")
        On Error GoTo 0
     
        If WordDoc Is Nothing Then
            MsgBox "Le document est fermé"
            Else
            MsgBox "Le document est ouvert"
            'WordDoc.Close 'fermeture application Word
        End If
    End Sub


    bonne journée
    michel

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tiens, je te l'ai mis sous forme de fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub VerifFichierWordOuvert()
    Dim NomFich
    NomFich = Inputbox("Saisir le nom du document word")
    MsgBox "Le fichier " & NomFich & " est-il ouvert = " & TestWord(NomFich)
    End Sub
     
    Function TestWord(NomFich) As Boolean
    Dim objWord As Word.Application
    Dim doc As Document
        On Error Resume Next
        Set objWord = GetObject(, "Word.Application")
        If Not objWord Is Nothing Then
            Set doc = objWord.ActiveDocument
            If Not doc Is Nothing Then
                 TestWord = UCase(doc.Name) = UCase(NomFich)
                 Set doc = Nothing 'supprime l'objet doc
            End If
        End If
        Set objWord = Nothing '-- détruire l'objet Word
    End Function
    A+

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une autre manière de procéder si tu veux connaître tous les documents Word ouverts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ListerLesDocOuvertsDansWord()
    Dim objWord As Word.Application
    Dim i As Byte
        On Error Resume Next
        Set objWord = GetObject(, "Word.Application")
        If Not objWord Is Nothing Then
            For i = 1 To objWord.Documents.Count
                MsgBox objWord.Documents(i).Name
            Next
        End If
        Set objWord = Nothing '-- détruire l'objet Word
    End Sub
    Faut m'arrêter sinon je continue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] comment savoir si mon fichier excel est ouvert avec excel en anglais?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2010, 15h28
  2. Verifier qu'un fichier Word est ouvert à partir de VBA Excel
    Par dimitrios dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 07/01/2009, 17h37
  3. Comment savoir si un fichier Excel est ouvert en lecture seul
    Par patate5555 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/06/2007, 13h53
  4. Savoir si un fichier texte est ouvert ?
    Par devl83 dans le forum Administration système
    Réponses: 4
    Dernier message: 22/05/2007, 17h00
  5. savoir si un fichier excel est ouvert
    Par toytoy18 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/06/2006, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo