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 :

VBA-EXCEL- TEST 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 confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Par défaut VBA-EXCEL- TEST si fichier ouvert
    salut a tous les gars.

    jais un pb trés simple(encore une fois).
    je veux tester si un fichier est ouvert ou pas.

    mon code ouvre directement ce fichier à la base mais parfois lorsqu'il est deja ouvert, me pose une errer du type qu'il ya un fichier deja ouvert a ce nom.
    donc jai commencé à réfléchir à un test qui fait:
    si fichier nommé "aaaa.xls" est ouvert on continue
    sinon on ouvre ce meme fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Dim WB As Workbook
        For Each WB In Workbooks
        If WB.name = "aaaa.xls" Then
        Exit For
        Else
        Workbooks.Open Filename:=A & N, UpdateLinks:=0, ReadOnly:=True
         Exit For
        End If
    Next WB
    A et N sont des variables string que j'ai prédéfini au préalable pour indiquer le chemin du fichier et le nom aaaa du fichier xls.

    mais ca pas lair de marcher.
    il me l'ouvre a chaque fois en ecrasant l'ouvert....
    jy suis pas loin alors merci de votre aide. bonne soirée

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est le moment d'apprendre à ce servir de Debug.print..., cette instruction permet d'ecrire un message dans fenêtre exécution ( CTRL G..)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     For Each WB In Workbooks
       Debug.print "Test Classeur :[" & WB.Name & "]"
        If WB.name = "aaaa.xls" Then
    ainsi tu pourra voir si le classeur aaaa apparaît dans la liste des classeurs ouvert..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Par défaut
    je ne veux pas faire aparaitre un msgbox.
    je veux que ce soit dans le procédure.ctou

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Dis, tu veux bien écouter ce qu'on te dit?

    bbil n'a, nulle part, fait mention d'un MsgBox.

    Et quand bien même, le but c'est que tu voies si ton nom de fichier est correct.
    Quand tout fonctionne bien, tu supprimes tout ce qui sert au débuggage.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Une autre méthode pour voir si un classeur est déjà ouvert, est de tester une propriété relative au classeur. Par exemple le nom de ce classeur. Il faut intercepter l'erreur dans le cas où le classeur n'est pas ouvert. Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function ClasseurOuvert(NomClasseur As String) As Boolean
        On Error Resume Next
     
        ClasseurOuvert = Application.Workbooks(NomClasseur).Name <> vbNullString
    End Function
    La fonction ClasseurOuvert renvoie True si le classeur est ouvert, False dans le cas contraire.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Par défaut
    et comment utiliser cette fonction dans un code?
    et cette fonction peut elle tester un fichier qui est dans un autre classeur?
    (on se suit a ce que je vois...)

Discussions similaires

  1. VBA Excel: Nombre de fichiers Excel ouverts
    Par mamid1706 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/01/2008, 15h26
  2. [VBA-excel] import de fichier txt sans délimiteur de texte
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/01/2008, 05h49
  3. [VBA-E] gestion des fichiers ouverts ...
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 20/01/2006, 17h10
  4. [VBA-Excel] test de server
    Par fixmi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/01/2006, 17h12
  5. VBA Excel - Nom de fichier
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/01/2006, 16h19

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