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

VB.NET Discussion :

Savoir si un fichier excel est déjà ouvert


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Points : 123
    Points
    123
    Par défaut Savoir si un fichier excel est déjà ouvert
    Bonjour à tous je travaille sur une application qui inventorie des fichier excel.
    j'aurais besoin de savoir si un fichier et déjà en cours d'utilisation, en effet si un utilisateur à un fichier excel ouvert sur son poste et que l'ont essaie de l'ouvrir nous obtenons un petit message qui nous demande si nous souhaitons l'ouvrir en lecture seule. Pour ne pas être déranger lors de mon inventaire j'ai mis la propriété d'Excel DisplayAlerts à False.
    Existe t'il une fonction de type isReadOnly?
    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Points : 254
    Points
    254
    Par défaut
    Salut,

    Tu as la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Computer.FileSystem.GetFileInfo("chemin de ton fichier").IsReadOnly
    @+
    Mat

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Points : 123
    Points
    123
    Par défaut
    merci pour ta réponse! apparemment l'appli ne voit pas le fichier comme étant en lecture seul :S alors qu'il est bien ouvert sur le réseau.
    Je ne comprend pas trop là!

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par bakman Voir le message
    merci pour ta réponse! apparemment l'appli ne voit pas le fichier comme étant en lecture seul :S alors qu'il est bien ouvert sur le réseau.
    Je ne comprend pas trop là!
    ça parait logique finalement, c'est Excel qui dit que le fichier est en lecture seule et pas le système d'exploitation.

    Lorsqu'un utilisateur ouvre ton fichier, c'est un verrou qui est posé et non l'attribut lecture seule qui est modifié.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Points : 123
    Points
    123
    Par défaut
    Effectivement,
    J'ai aussi essayer de mettre sur mon objet worksheet la propriété "Read Only" mais elle apparait comme "False"
    Allé un ptit boud'coD
    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
     
            ExcelAp = CreateObject("Excel.Application")
            ExcelAp.DisplayAlerts = False
                                Try
                                    ExcelAp.Workbooks.Add(File.Path)
                                    ExcelFile = ExcelAp.ActiveWorkbook
     
                                    If ExcelFile.ReadOnly Then
                                        mylistview.SubItems.Add("Read Only")
                                    End If
     
                                Catch ex As COMException
                                    mylistview.SubItems.Add("Invalid File")
                                Finally
                                    ExcelFile.Close(SaveChanges:=False)
                                End Try
    Il y à quelques chose que je ne saisi pas!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut Une autre approche
    Bonjour,
    Je peux essayer de vous conseiller une autre approche.
    http://www.developpez.net/forums/d86...r-deja-ouvert/

    Je ne suis pas sure quel correponde à votre problème.

    En espérant vous avoir aidé.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Points : 123
    Points
    123
    Par défaut
    Merci! L'exemple que vous venez de me fournir n'est valable que si le fichier et ouvert sur mon propre ordinateur.
    Alors que dans mon cas je voudrais savoir si le fichier est ouvert sur un ordinateur du réseau

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Je m'obstine un peu avec mon idée.
    Je ne suis toujours pas convaincu qu'elle soit bonne.

    http://msdn.microsoft.com/fr-fr/libr...81(VS.80).aspx

    GetProcess marche aussi pour les machines distantes.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Points : 123
    Points
    123
    Par défaut
    @wakan: Je pense que cette solution n'est pas adapté à mon problème mais je te remercie de t'être penché sur le problème
    Après plusieurs débug je me suis aperçus que lorsque mon programme ouvre le fichier excel qui est déjà ouvert sur le réseau ce dernier ne porte pas la mention [Lecture seule] tel que si je l'ouvrais en cliquant dessus. j'ai l'impression que lorsque qu'il est ouvert par mon appli vb.net est prioritaire sur le fichier donc il n'est jamais vu comme étant un fichier en lecture seule même en mettant la propriété DisplayAlerts = True je ne reçois aucune message me spécifiant qu'il est déjà utilisé.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Points : 123
    Points
    123
    Par défaut
    Trouvé !!

    Le problème venait de la manière dont j'ouvre le fichier excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ExcelAp.Workbooks.Add(File.Path)
    Alors que la méthode open permet d'ouvrir suivant plusieurs critères comme
    "IgnoreReadOnlyRecommended"
    expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad, OpenConflictDocument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ExcelAp.Workbooks.Open(File.Path, , , , , , True, , , , True)
    En utilisant la méthode Open() on peux donc pas la suite utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If ExcelFile.ReadOnly Then
                                    blablabla
    Merci encore a bientot
    Ps: J'ai trouvé mon bonheur ici

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2013, 14h45
  2. [XL-2007] comment savoir si mon fichier excel est ouvert avec excel en anglais?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2010, 15h28
  3. Comment savoir si un fichier Excel est ouvert en lecture seul
    Par patate5555 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/06/2007, 13h53
  4. savoir si un fichier excel est ouvert
    Par toytoy18 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/06/2006, 10h12
  5. Réponses: 5
    Dernier message: 05/11/2005, 11h43

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