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 :

Si fichier ouvert rien sinon ouvre le


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Avril 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 45
    Points : 39
    Points
    39
    Par défaut Si fichier ouvert rien sinon ouvre le
    Bonjour

    Dans un code de vba, je souhaite faire ouvrir le fichier par l'utilisateur si et seulement si celui-ci n'est pas déjà ouvert.
    Je commence tout juste à utiliser On Error dans mes macros.
    Voici ce que je souhaite gérer comme erreur :
    1/ si le fichier est ouvert : tu ne fais rien
    2/ si le fichier n'est pas ouvert, tu tentes de l'ouvrir
    2a/ si le peux l'ouvrir : ouvre
    2B/ si tu ne le trouves pas ou qu'il n'est pas bien nommer : tu quittes la macro

    voici le code que j'ai actuellement réalisé. le ic, si mon fichier est déjà ouvert le message d'erreur me disant qu'il est introuvable continue d'apparaître... et cela ne poursuis pas ma macro après... buuuug ! :p
    ha oui, et je passe par un userform car je propose l'ouverture de plusieurs fichiers en même temps !
    bien entendu, on connais d'avance le chemin et le nom du fichier qu'il faut ouvrir.

    merci de votre aide !

    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
    38
    39
    40
    41
    42
    43
    44
    Private Sub btnOK_Click()
     
    Dim cheminBEbud, fichierBEbud, ouvreBEbud As String 'pour fichier 1
    Dim cheminBEsupport, fichierBEsupport, ouvreBEsupport As String 'pour fichier 2
    Dim cheminTDB, fichierTDB, ouvreTDB As String 'pour fichier 3
    Dim estouvert As Boolean
     
    estouvert = False
     
    'pour fichier 1
    If Box_BE_bud.Value = True Then 
    ouvertureBEbud:
        ThisWorkbook.Activate
        Sheets("Commandes").Select
        cheminBEbud = Range("D6").Value
        fichierBEbud = Range("B6").Value & ".xlsm"
        ouvreBEbud = cheminBEbud & "\" & fichierBEbud
     
        On Error GoTo ouvre
        Workbooks(fichierBEbud).Activate
        On Error GoTo 0
        estouvert = True
        MsgBox "Le fichier est déjà ouvert !", vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER"
    ouvre:
        If estouvert = False Then
            ChDir cheminBEbud
            On Error GoTo erreur
            Workbooks.Open Filename:=ouvreBEbud
    erreur:
            MsgBox "Le fichier " & fichierBEbud & " est introuvable ou n'existe pas !" & Chr(10) _
            & "Veuillez vérifier l'existence du fichier, son nom et son chemin d'accès dans la feuille Commandes." _
            , vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER"
            GoTo fermeture
        End If
    End If
     
    ' ce code est identique pour chaque bouton de mon UF. (j'ai 4 boutons)
     
    fermeture:
    ThisWorkbook.Activate
    Unload Me
    UserForm3_ouverture_file.Hide
     
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu....
    Bonjour
    La gestion d'erreur peut avoir des avantages mais personnelement je prefere les eviter car trop sensible a intergrer dans une macro qui doit s'executer d'une manière ou d'une autre

    je te propose de tester dans l'application si le classeur est ouvert
    une petite macro toute simple que l'on pourrais transformer en fonction avec argument s
    allez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test_la_presence_du_fichier()
    MsgBox ThisWorkbook.Name
    For Each wb In Application.Workbooks
    If wb.Name = "Classeur1" Then ordre = "oui"
    Next
    If ordre = "oui" Then
    MsgBox "le classeur est deja ouvert"
    Else
    MsgBox "le classeur n'est pas ouvert"
    'action a faire (reste de ta macro )
    'ouverture du classeur
    End If
    End Sub
    Au plaisir

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Avril 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 45
    Points : 39
    Points
    39
    Par défaut
    bonjour

    votre code fonctionne mais ne répond pas à mon problème.

    cdlt

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je t'ai donné une solution plus propre afin de tester si un fichier est ouvert
    tu ne t'attent tout de même pas que je refasse ton code a ta place quand même

    j'ai regarder ton code initial il faut une minute tout au plus pour intégrer la méthode que je viens de te donner

  5. #5
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    Patrick a raison et il ne te reste plus qu'à l'ouvrir, un autre exemple à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    Dim ouvert As Boolean, class As Workbook
    Dim racine As String
    '-------------------------------------------------------------------------------
    ouvert = False
    racine = ActiveWorkbook.Path
    Set classeur = ActiveWorkbook
    For Each class In Workbooks
        If class.Name = "tonclasseur.xlsm" Then ouvert = True
    Next
    If ouvert = False Then Workbooks.Open (racine & "\" & "tonclasseur.xlsm")
     
    ...
    PS : on s'est croisé, Patrick

  6. #6
    Invité
    Invité(e)
    Par défaut Bojour,
    dans le même esprit
    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
    Public wb As Workbook
    Sub test_la_presence_du_fichier()
    Dim Rep As String
    Dim Fichier As String
     
    Dim I As Long
    Dim ordre As Boolean
    Rep = "C:\MyTest\" 'repertoire
    Fichier = "Nouveau Feuille Microsoft Office Excel.xlsx" 'nom du fichier.xls
     
    For I = 1 To Application.Workbooks.Count
        Set wb = Application.Workbooks(I)
        If wb.Name = Fichier Then ordre = True
    Next
    If ordre = False Then 'si le fichier n'est pas ouvert.
        Set wb = Workbooks.Open(Rep & Fichier)
    End If
    End Sub
    toujours dans le même esprit
    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 test()
    Dim Wb As Workbook
    Set Wb = test_la_presence_du_fichier("C:\MyTest\", "Nouveau Feuille Microsoft Office Excel.xlsx")
    End Sub
     
     
    Function test_la_presence_du_fichier(Rep As String, Fichier As String) As Workbook
    Dim I As Long
    Dim ordre As Boolean
    For I = 1 To Application.Workbooks.Count
        Set test_la_presence_du_fichier = Application.Workbooks(I)
        If test_la_presence_du_fichier.Name = Fichier Then ordre = True
    Next
    If ordre = False Then 'si le fichier n'est pas ouvert.
        Set test_la_presence_du_fichier = Workbooks.Open(Rep & Fichier)
    End If
    End Function

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Re
    salut casefayere
    en fonction ca donnerait un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    If fichier_ouvert("nom du classeur") = False Then Workbooks.Open ("chemin du classeur")
    End Sub
     
    Function fichier_ouvert(nom) As Boolean
    fichier_ouvert=false
    Dim Wb As Workbook
    For Each Wb In Workbooks
    If Wb.Name = "nom du classeur" Then fichier_ouvert = True
    Next
    End Function

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 69
    Points : 134
    Points
    134
    Par défaut
    Bonjour votre erreur est toute simple vous avez oublié de mettre un Exit Sub dans le cas où il n'y a pas d'erreur.
    Essayez avec ce code :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Private Sub CommandButton1_Click()
     
        Dim cheminBEbud, fichierBEbud, ouvreBEbud As String 'pour fichier 1
        Dim cheminBEsupport, fichierBEsupport, ouvreBEsupport As String 'pour fichier 2
        Dim cheminTDB, fichierTDB, ouvreTDB As String 'pour fichier 3
        Dim estouvert As Boolean
     
        estouvert = False
     
        'pour fichier 1
        If Box_BE_bud.Value = True Then
    ouvertureBEbud:
            ThisWorkbook.Activate
            Sheets("Commandes").Select
            cheminBEbud = Range("D6").Value
            fichierBEbud = Range("B6").Value & ".xlsm"
            ouvreBEbud = cheminBEbud & "\" & fichierBEbud
     
            On Error GoTo ouvre
            Workbooks(fichierBEbud).Activate
            On Error GoTo 0
            estouvert = True
            MsgBox "Le fichier est déjà ouvert !", vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER"
            Unload Me
            UserForm3_ouverture_file.Hide
            Exit Sub
    ouvre:
            If estouvert = False Then
                ChDir cheminBEbud
                On Error GoTo erreur
                Workbooks.Open Filename:=ouvreBEbud
                Unload Me
                UserForm3_ouverture_file.Hide
                Exit Sub
    erreur:
                MsgBox "Le fichier " & fichierBEbud & " est introuvable ou n'existe pas !" & Chr(10) _
                & "Veuillez vérifier l'existence du fichier, son nom et son chemin d'accès dans la feuille Commandes." _
                , vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER"
                GoTo fermeture
            End If
        End If
     
        ' ce code est identique pour chaque bouton de mon UF. (j'ai 4 boutons)
     
    fermeture:
        ThisWorkbook.Activate
        Unload Me
        UserForm3_ouverture_file.Hide
     
    End Sub

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    rdurupt on s'est croisé

    et bein avec ca .........

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Avril 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 45
    Points : 39
    Points
    39
    Par défaut
    dans le cas où il n'y a pas d'erreur je ne veux pas quitter la macro mais je veux qu'il ouvre mon fichier 2.... (dont le code est identique au fichier 1).
    je travaille sur une boucle pour simplifier... mais je n'y parviens pas à 100% pour l'instant.


    Citation Envoyé par letudiant68 Voir le message
    Bonjour votre erreur est toute simple vous avez oublié de mettre un Exit Sub dans le cas où il n'y a pas d'erreur.
    Essayez avec ce code :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Private Sub CommandButton1_Click()
     
        Dim cheminBEbud, fichierBEbud, ouvreBEbud As String 'pour fichier 1
        Dim cheminBEsupport, fichierBEsupport, ouvreBEsupport As String 'pour fichier 2
        Dim cheminTDB, fichierTDB, ouvreTDB As String 'pour fichier 3
        Dim estouvert As Boolean
     
        estouvert = False
     
        'pour fichier 1
        If Box_BE_bud.Value = True Then
    ouvertureBEbud:
            ThisWorkbook.Activate
            Sheets("Commandes").Select
            cheminBEbud = Range("D6").Value
            fichierBEbud = Range("B6").Value & ".xlsm"
            ouvreBEbud = cheminBEbud & "\" & fichierBEbud
     
            On Error GoTo ouvre
            Workbooks(fichierBEbud).Activate
            On Error GoTo 0
            estouvert = True
            MsgBox "Le fichier est déjà ouvert !", vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER"
            Unload Me
            UserForm3_ouverture_file.Hide
            Exit Sub
    ouvre:
            If estouvert = False Then
                ChDir cheminBEbud
                On Error GoTo erreur
                Workbooks.Open Filename:=ouvreBEbud
                Unload Me
                UserForm3_ouverture_file.Hide
                Exit Sub
    erreur:
                MsgBox "Le fichier " & fichierBEbud & " est introuvable ou n'existe pas !" & Chr(10) _
                & "Veuillez vérifier l'existence du fichier, son nom et son chemin d'accès dans la feuille Commandes." _
                , vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER"
                GoTo fermeture
            End If
        End If
     
        ' ce code est identique pour chaque bouton de mon UF. (j'ai 4 boutons)
     
    fermeture:
        ThisWorkbook.Activate
        Unload Me
        UserForm3_ouverture_file.Hide
     
    End Sub
    pour le reste des réponses des autres participants, vos codes fonctionnent ! j'ai testé... mais ça n'empeche pas mon pb. j'hésite du coup à prendre en compte la gestion des erreurs...

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    rdurupt on s'est croisé

    et bein avec ca .........
    oui mais ma proposition n'est que la suite de ta première. en tout cas fortement inspiré!

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 69
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par LaMite Voir le message
    dans le cas où il n'y a pas d'erreur je ne veux pas quitter la macro mais je veux qu'il ouvre mon fichier 2.... (dont le code est identique au fichier 1).
    je travaille sur une boucle pour simplifier... mais je n'y parviens pas à 100% pour l'instant.
    Ah oui j'avais oublié cet aspect.

    Le truc, je pense, c'est que vous ne comprenez pas entièrement comment fonctionne un ErrorHandler : si la macro rencontre une erreur elle se déplace bien vers le bloc désigner (genre "ouvre:") mais si elle ne rencontre pas d'erreur elle continue simplement à lire les lignes en dessous et ce, que ces les lignes fassent partie d'un bloc ou non.

    Je vous recommande de lancer votre macro en mode pas à pas pour bien voir le comportement de votre procédure.
    La solution est, je pense, de mettre les blocs erreur tout à la fin de la procédure, comme ça la macro les lira UNIQUEMENT si il y a une erreur.

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    je ne vois pas l'interet d'une gestion d'erreur quand on peut s'en passer

    ca rend le code bancale et peu viable dans la durée pour peu que la feuille soit modifiée dans l'avenir

    les solutions que l'on a donné te satisferont mieux a mon avis si tu fait l'effort d'en comprendre le fonctionnement

    mais c'est toi qui vois

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    Une ch'tite fonction pour voir si un classeur est ouvert :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function IsOpen(Name) As Boolean
             On Error Resume Next
             IsOpen = IsObject(Workbooks(Name))
    End Function
    Et pour vérifier si un fichier existe (avec son chemin d'accès complet …), suffit d'utiliser la fonction Dir

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    +1 Marc-L

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Avril 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 45
    Points : 39
    Points
    39
    Par défaut
    bonjour à tous ! je vais me replonger dans tout ça tranquillement ce weekend avec tout vos conseils !
    merci en tout cas. je reviens vers vous dès que j'ai finalisé !

  17. #17
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Merci parmi !

    Cadeau !

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour a tous
    MarcL isobject il fallait y penser j'ai pas les mots la mais + 1 ca c'est sur

    j'adore je garde

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    cela dit si on peut se passer de la gestion d'erreur moi je prefere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    MsgBox IsOpen("nom du classeur")
    End Sub
     
    Function IsOpen(Name) As Boolean
                      If IsObject(Workbooks(Name)) Then IsOpen = IsObject(Workbooks(Name))
    End Function
    marcL

  20. #20
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Merci Patrick !

    J'ai besoin de la gestion d'erreur : as-tu testé avec un nom de classeur qui n'est pas ouvert ?
    De mon côté dans un tel cas et sans gestion une erreur 9 est renvoyée …

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] Fichier ouvert ? sinon sortir !
    Par DJ FA dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/12/2012, 22h49
  2. Réponses: 1
    Dernier message: 07/06/2012, 21h20
  3. Réponses: 5
    Dernier message: 13/05/2005, 12h26
  4. Nombre maximum de fichiers ouverts par processus
    Par galinoo dans le forum Windows
    Réponses: 3
    Dernier message: 27/10/2004, 17h47
  5. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47

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