Vérifier fichier pas ouvert

SebG

XLDnaute Nouveau
Bonsoir,

J'avais une problématique : un fichier macro XL (que j'appelerai Central) réalise des traitements chaque jour et met à jour différents tableaux de bord (fichier XL sur serveur) qui sont consultés par différents services. Le souci se posait lorsque certains fichiers étaient déjà ouverts par un utilisateur et que la mise à jour devait se faire.

En consultant le forum, j'ai trouvé diverses maniéres de traiter ce sujet, mais elles permettaient uniquement de traiter le cas où un/des fichiers sont déja ouvert sur le poste qui lance le fichier Central.

Je vous propose la solution mise en oeuvre qui fonctionne.
Si certains ont des propositions pour l'améliorer, je suis preneur. D'autre part il devrait y avoir moyen de faire la même chose via les fonctions système de fichier... non ?

PHP:
Function FichierDejaOuvert(RepName As String, FileName) As Boolean
    On Error Resume Next
        Set toto = Workbooks.Open(RepName & "\ " & FileName)
        If Err.Number = 0 Then      'ouverture fichier sans erreur'
                FichierDejaOuvert = False    'donc fichier dispo'
                If Workbooks(FileName).ReadOnly Then 'ouverture possible en lecture seule si déjà ouvert ailleurs'
                    FichierDejaOuvert = True 'finalement fichier pas dispo'
                End If
            toto.Close
        Else
            FichierDejaOuvert= True 'fichier déjà ouvert et pas dispo en lecture seule'
        End If
End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 234
Messages
2 086 474
Membres
103 226
dernier inscrit
smail12