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 :

Tester si un fichier est ouvert [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut Tester si un fichier est ouvert
    Bonjour, en cherchant sur internet, j'ai opté pour le code avec la gestion d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    On Error Resume Next
        Workbooks(Fichier).Activate
        If Err <> 0 Then Workbooks(Fichier).Close False
    On Error GoTo 0
    Quelqu'un saurait pourquoi il fonctionne pas ?

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Backx3, bonjour le forum,

    Difficile de te dire pourquoi il ne fonctionne pas sans connaître la valeur de la variable Fichier...

  3. #3
    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, voir Code de macro pour vérifier si un fichier est déjà ouvert ou allégé dans la FAQ



    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
    Option Explicit
     
    Sub TestFileOpened()
        ' Test to see if the file is open.
        If IsFileOpen("c:\Book2.xls") Then
            ' Display a message stating the file in use.
            MsgBox "File already in use!"
            ' Add code here to handle case where file is open by another
            ' user.
        Else
            ' Display a message stating the file is not in use.
            MsgBox "File not in use!"
            ' Open the file in Microsoft Excel.
            Workbooks.Open "c:\Book2.xls"
            ' Add code here to handle case where file is NOT open by another
            ' user.
        End If
    End Sub
     
    ' This function checks to see if a file is open or not. If the file is
    ' already open, it returns True. If the file is not open, it returns
    ' False. Otherwise, a run-time error occurs because there is
    ' some other problem accessing the file.
    Private Function IsFileOpen(filename As String)
    Dim filenum As Integer, errnum As Integer
     
        On Error Resume Next
        filenum = FreeFile()
        ' Attempt to open the file and lock it.
        Open filename For Input Lock Read As #filenum
        Close filenum
        errnum = Err           ' Save the error number that occurred.
        On Error GoTo 0        ' Turn error checking back on.
     
        ' Check to see which error occurred.
        Select Case errnum
                ' No error occurred.
                ' File is NOT already open by another user.
            Case 0
                IsFileOpen = False
                ' Error number for "Permission Denied."
                ' File is already opened by another user.
            Case 70
                IsFileOpen = True
                ' Another error occurred.
            Case Else
                Error errnum
        End Select
    End Function

  4. #4
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Merci pour vos réponses.
    Citation Envoyé par Thautheme Voir le message
    Bonjour Backx3, bonjour le forum,

    Difficile de te dire pourquoi il ne fonctionne pas sans connaître la valeur de la variable Fichier...
    Ben normalement c'est ok, vu que j'utilise cette variable avant...

    J'ai vu ce code kiki, mais je me disais qu'il y avait plus simple avec On Error Resume Next..

    Edit: Modification de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    On Error Resume Next
        MsgBox FichierGraphe
        MsgBox Fichier
        Workbooks(Fichier).Activate
        If Err <> 0 Then Workbooks(Fichier).Close False
    On Error GoTo 0
    Le premier msgbox j'ai le nom du fichier ouvert avec l'extension, et le deuxième j'ai tout le chemin avec l'extension..
    Il devrait se fermer, je comprends pas..

  5. #5
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Problème résolu, je sais pas trop pourquoi, mais j'ai fermé le fichier+extension au lieu du chemin entier+extension.
    Il me semblait avoir essayé les deux..

    Merci quand même

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

Discussions similaires

  1. Visual basic - Tester si un fichier est ouvert
    Par juliep dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/03/2015, 19h19
  2. Réponses: 6
    Dernier message: 07/07/2014, 12h13
  3. [VBS] Tester si un fichier est ouvert(utilisé)
    Par l_autodidacte dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 06/04/2014, 17h23
  4. Tester si un fichier est ouvert
    Par aragog dans le forum Débuter
    Réponses: 13
    Dernier message: 17/04/2013, 16h49
  5. Tester si 1 fichier est ouvert
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/08/2008, 09h43

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