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 :

Détecter si un fichier est ouvert(VBA)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 37
    Par défaut Détecter si un fichier est ouvert(VBA)
    Bonjour savez vous comment detecter si un fichier excel est ouvert. Je veux créer un programme disant si ExcelVba ouvert alors ... sinon ouvrir fichier ExcelVba.
    Merci d'avance,
    Cordialement, Thomas

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ThomasVil Voir le message
    Bonjour,

    Une solution possible avec cette 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
     
    Function VerificationFichierOuvert(ByVal NomFichier As String) As Boolean
     
    Dim WbEnCours As Workbook
     
        VerificationFichierOuvert = False
        If Workbooks.Count = 0 Then
           Exit Function
        Else
           For Each WbEnCours In Application.Workbooks
               If WbEnCours.Name = NomFichier Then VerificationFichierOuvert = True
           Next WbEnCours
        End If
     
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub TestVerificationFichierOuvert()
        MsgBox VerificationFichierOuvert("A.xlsm")
    End Sub
    Nb : Ce bout de code peut paraître complètement c..., mais il sert dans des macros complémentaires .xlam depuis le menu excel et il n'y a pas toujours des fichiers ouverts.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If Workbooks.Count = 0 Then
           Exit Function
        ....

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 37
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Une solution possible avec cette 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
     
    Function VerificationFichierOuvert(ByVal NomFichier As String) As Boolean
     
    Dim WbEnCours As Workbook
     
        VerificationFichierOuvert = False
        If Workbooks.Count = 0 Then
           Exit Function
        Else
           For Each WbEnCours In Application.Workbooks
               If WbEnCours.Name = NomFichier Then VerificationFichierOuvert = True
           Next WbEnCours
        End If
     
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub TestVerificationFichierOuvert()
        MsgBox VerificationFichierOuvert("A.xlsm")
    End Sub
    Nb : Ce bout de code peut paraître complètement c..., mais il sert dans des macros complémentaires .xlam depuis le menu excel et il n'y a pas toujours des fichiers ouverts.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If Workbooks.Count = 0 Then
           Exit Function
        ....
    Merci beaucoup

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Juste ouvert sur le pc actuel donc je suppose que c'est sur la meme instance Excel
    Rien à voir.
    Plusieurs instances de Excel peuvent être ouvertes sur le même PC
    Je réitère donc ma question :
    savoir :
    - s'il est ouvert dans la même instance de Excel
    ou
    - s'il est ouvert par n'importe quelle instance de Excel

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re,

    une facon simple de vérifier qu'un classeur est ouvert à voir ici : https://excel.developpez.com/faq/?pa...ClasseurOuvert

    Maintenant la question de @unparia est importante car il se peut que tu es plusieurs instance d'Excel ouvert (comme si tu avais plusieurs d'Excel ouvert indépendant des uns et des autres (uniquement sur PC))
    et que le fichier que tu veux vérifier soit vérifié sur la mauvaise instance d'Excel, ce qui à pour conséquence de te donner en fin de compte une réponse erronée …

    donc tu choisis d'orienté ton code dans quel sens ?

    Option 1 : "s'il est ouvert dans la même instance de Excel"

    Option 2 : " s'il est ouvert par n'importe quelle instance de Excel"

    A choisir selon ta situation dans laquelle tu vas te trouver …


    Edit : Cela peut t'aider à comprendre :https://excel-malin.com/codes-source...nstance-excel/
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour à tous,

    autre idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function fichierOuvert(nomFich As String) As Boolean
        Dim tmp
        On Error GoTo fin
        tmp = Workbooks(nomFich).Name
        fichierOuvert = True
    fin:
    End Function
    (dans la même session, sinon voir le lien de ryu)
    eric

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    savoir :
    - s'il est ouvert dans la même instance de Excel
    ou
    - s'il est ouvert par n'importe quelle instance de Excel
    ???

  8. #8
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    J'avais fait ceci pour PC/MAC (à voir - un petit retour serait cool ) :
    https://www.developpez.net/forums/d1...uer-procedure/
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 37
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Bonjour,

    J'avais fait ceci pour PC/MAC (à voir - un petit retour serait cool ) :
    https://www.developpez.net/forums/d1...uer-procedure/
    salut merci bcp mais ton code est trop "lourd" et je n'ai pas les connaissances pour le réduire et l'optimiser a mes besoins. J'ai essayé d'intégrer ton code au mien et il met enormement de temps a se lancer maintenant serais-tu ce que j epeux retirer du tien pour pouvoir l'optimiser a mon problème stp(je cherche juste a savoir si il est ouvert sur mon ordi)
    Merci déja énormement pour ton aide

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 37
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    savoir :
    - s'il est ouvert dans la même instance de Excel
    ou
    - s'il est ouvert par n'importe quelle instance de Excel
    ???
    Juste ouvert sur le pc actuel donc je suppose que c'est sur la meme instance Excel

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

Discussions similaires

  1. Détecter si le fichier est déjà ouvert
    Par guidav dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/10/2007, 09h48
  2. [VBA-E] Verifier si un fichier est ouvert
    Par peaceandloveman01 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/09/2007, 14h45
  3. Macro dans excel permettant de voir si un fichier est ouvert
    Par VirginieGE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2004, 07h51
  4. Comment tester si fichier est ouvert ?
    Par fusef dans le forum Langage
    Réponses: 7
    Dernier message: 11/08/2004, 18h51

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