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 :

Excel VBA : contrôler si fichier ouvert


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 31
    Par défaut Excel VBA : contrôler si fichier ouvert
    Bonjour,

    j'ai trouvé sur ce forum le code de macro permettant, via Excel, de vérifier 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub PublipostageVisualisation()
    '======================================================================
    ' Visualisation d'un fichier de Publipostage
    '======================================================================
        Dim FicVoeux As String
        Dim WordApp As Object
        Dim WordDoc As Object
     
    ' Détermination des paramètres de début
        Call Choix_Paramètres
     
    '    Set WordApp = CreateObject("Word.Application")
     
        FicVoeux = RepertoirePublipostage & "Voeux_Clients.docx"
     
        'With WordApp
        '    Set WordDoc = .Documents.Open(FicVoeux)
        '    .Visible = True
        '    .Activate
        'End With
     
        Set WordApp = GetObject(, "Word.Application")
        Set WordDoc = WordApp.Documents(FicVoeux)
        If Not WordDoc Is Nothing Then
            MsgBox "Fichier ouvert"
            GoTo PubliWord
        End If
     
        Set WordApp = CreateObject("Word.Application")
        Set WordDoc = WordApp.Documents.Open(FicVoeux)
     
    PubliWord:
        WordApp.Visible = True
        WordApp.Activate
     
    End Sub
    A l'exécution, j'ai le message "Erreur d'exécution 4160 Nom de fichier incorrect"
    sur l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set WordDoc = WordApp.Documents(FicVoeux)
    Pouvez-vous m'éclairer sur l'erreur de codage ?
    Merci
    Cordialement
    Dadu35

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Déjà, comment la variable "RepertoirePublipostage" est elle initialisée ? Est elle déclarée en tête de module ? Ensuite, il te faut tester si le document existe sur le disque avec Dir() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Dir(FicVoeux) = "" Then
     
        MsgBox "Le fichier '" & FicVoeux & "' est introuvable !"
        Exit Sub
     
    End If
    Hervé.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 31
    Par défaut Excel VBA : contrôler si fichier ouvert
    Bonjour Hervé,

    lorsque je cherche à visualiser le fichier, il existe forcément.
    La variable "RepertoirePublipostage" est valorisée : c'est le path du fichier Word que je désire ouvrir.
    Donc ta réponse ne répond à mon problème.
    Merci malgré tout
    A+
    Dadu35

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, une fois de plus : à lire et assimiler

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 31
    Par défaut Excel VBA : contrôler si fichier ouvert
    Bonjour,

    j'ai bien vu ce FAQ, et l'ai testé.
    Lorsque le fichier Word est fermé : fonctionnement normal, le fichier est ouvert par la suite de la macro
    Lorsque e fichier Word est déjà ouvert, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        On Error Resume Next
        Set WordApp = GetObject(, "Word.Application")
        Set WordDoc = WordApp.Documents(FicVoeux)
        On Error GoTo 0
     
        If Not WordDoc Is Nothing Then
            MsgBox "Fichier ouvert"
            GoTo PubliWord
        End If
    considère fermé et tente de l'ouvrir à nouveau.
    Donc, j'ai un souci que je n'arrive pas à régler
    Merci de votre aide si une solution est possible.

    Cordialement
    Dadu35

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Donc, si je comprends bien, tu veux savoir si l'application Word à été lancée ou non ? En testant si une erreur a été retournée par la fonction GetObject :
    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 Test()
     
        Dim WordApp As Object
     
        On Error Resume Next
     
        Set WordApp = GetObject(, "Word.Application")
     
        If Err.Number <> 0 Then
     
            MsgBox "L'application Word n'a pas été lancée !"
     
        Else
     
            MsgBox "L'application Word est active !"
     
        End If
     
    End Sub
    Hervé.

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

Discussions similaires

  1. [Excel - VBA] lecture de fichier txt
    Par simstef dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/06/2007, 16h00
  2. [EXCEL - VBA] Problème ouverture fichier suite Macro Userform
    Par Guidhy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/04/2007, 09h18
  3. [VBA-Excel] Vider Historique des fichiers ouverts
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/09/2006, 14h29
  4. Réponses: 10
    Dernier message: 27/02/2006, 16h55
  5. [VBA][Office 2003] Fichier ouvert depuis IE ou Word?
    Par nbaudraz dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2005, 14h27

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