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

VBScript Discussion :

Vbs Verification d'excel ouvert


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut Vbs Verification d'excel ouvert
    Bonjour,

    Je souhaiterai verifier à l'aide d'un vbs si un fichier excel est ouvert.
    Si le fichier est ouvert alors une msgbox dis merci d'essayer plus tard
    sinon ouvrir le fichier. j'arrive pas a trouver comment on fait en vbs en vba sous excel je vois mais la je suis un peux pommé Si quelqu'un a une solucion je vous en remeci par avance.

    Merci

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Montre nous le code que tu as écrit en VBS.

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut
    Ce code fonctionne bien pour l'ouverture d'un classeur mais pour la verification
    je vois pas comment faire j'ai bidouiller mais ca plante a chaque fois.J'ai l'impression que je me melange les pinceaux avec du vba et que ca passe pas

    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
    Const EXCEL_GUID = "Excel.Application" 
     
    ' Méthodes 
    Sub Main() 
     ' Excel objects 
     Dim wkb 
     
     ' Création d'une instance d'Excel 
     Set xls = CreateObject(EXCEL_GUID) 
     
     ' On ne l'affiche pas 
     'xls.Visible = True 
     
     ' Ajout d'un espace de travail (par défaut, Excel s'ouvre vide) 
     Set wkb = xls.Workbooks.Open("S:\Lala\Lala\mon classeur.xls") 
     xls.Run("start.start")
     
     ' On indique qu'on ferme l'espace de travail en enregistrant le document (une popup d'enregistrement apparaît) 
     wkb.Close(true) 
     
     ' On quitte Excel 
     xls.Quit 
     xls.Visible = True 
    End Sub 
     
    ' Démarrage du programme 
    Call Main()

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    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
    'Recupere une valeur dans un case d'un tabeau excel
    Function GetXlsValue(byref tableau, Nom_feuille, path) 'tableau = Le tableau contenant les coordonnés des cases à lire dans le fichier Excel.
                                                           'Nom_feuille = Le nom de la feuille du classeur Excel ou sont stockés les informations.
                                                           'path = Chemin complet du fichier Excel à ouvrir.
    On Error Resume Next
    Dim str_CaseXls 'Case Excel à lire.
    Dim str_CaseRecup 'Mise en forme du nom de la case pour l'objet Range
    Dim index 'Index de la boucle.
     
    'Ouverture du fichier Excel et récupération de l'objet correspondant à la feuille contenant les informations.
    Set obj_xls = CreateObject("Excel.Application")
    Set obj_File = obj_Xls.Workbooks.Open (path)
    Set Feuille = obj_File.Worksheets(Nom_feuille)
    index = 0
     
    'Récupération des informations pour chaque case spécifiée dans le tableau.
    Do While index <= Ubound(tableau)
       If tableau(index,0) <> "" Then
          str_CaseXls = tableau(index,0)
          str_CaseRecup = str_CaseXls & ":" & str_CaseXls
          tableau(index,1) = Feuille.Range(Str_CaseRecup).Value
       End If
       index = index + 1
    Loop
    obj_Xls.Workbooks.close
    Set obj_xls = Nothing
    Set obj_File = Nothing
    Set Feuille = Nothing
    If err.number <> 0 Then
       ErrorFile path, Err
    End If
    End Function
    C'est une fonction que j'utilisais pour lire une case d'un fichier excel, tu peut t'en inspirer pour voir comment on ouvre des workbooks et des feuilles en vbs.

    Ce qui m'embête avec ton code, c'est que tu essayes d'ouvrir un fichier excel alors que tu voulais savoir si le fichier est déjà ouvert.

    Regarde ces deux liens :
    http://www.mrexcel.com/board2/viewtopic.php?t=52146
    http://forums.microsoft.com/MSDN/Sho...36983&SiteID=1
    Le dernier te propose une solution avec du code VBS alors que l'autres c'est du VBA et il faut réadapter le code.
    En plus je préfère la solution du dernier lien .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 62
    Par défaut
    Je pars de ce code comme base car si le fichier est pas ouvert ces se que je dois faire. Le dernier code verifie si un classeur exite mais si j'ai bien pigé il verifie qu'en local non ? Mon fichier se trouve sur le reseaux et plusieur personne peuvent l'ouvir. J'ai pense a une verification du mode d'ouverture si le fichier peux s'ouvrire en lecture et ecriture alors il est pas utilise et on peux l'ouvrire sinon on envoie un msgbox en disant qu'il est occupé de reesayer plus tard.

    Le truc ses comment savoir si l'excel est ouvert en ecriture ou pas, je trouve pas grand chose sur ca. Merci de ton aide vraiment sympa

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Ha ok, je viens de comprendre ton problème.
    Pour l'instant je pensais que le fichier etait ouvert sur le même excel.
    Mais en fait le fichier sera ouvert sur des excels différents.
    Tu veux empecher le travail simultané sur un même fichier.
    Je ne sais pas si excel bloque le fichier en écriture lorsqu'il ouvre celui-ci où s'il peut le faire, mais je ne pense pas.
    Regarde du coté des objets WMI.
    En utilisant l'objet CIM_DATAFILE tu devrais réussir à faire ce que tu souhaites.
    Tu as notemment cet argument : "datetime LastAccessed" qui pourrait t'interesser.
    Lorsque le fichier est ouvert je en sais pas si l'argument est mis à jour où si c'est effectué à la libération du fichier.

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

Discussions similaires

  1. [VBA] Test d'application excel ouverte
    Par Rayno1979 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2009, 19h38
  2. Réponses: 1
    Dernier message: 14/06/2007, 15h21
  3. [VBA-E]Afficher les fichiers excel ouvert et leur onglets dispo pour les ouvrir
    Par anubisigfrid dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/03/2007, 22h52
  4. [VBA-Office]Détecter la directorie du fichier Excel ouvert
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/12/2006, 13h53
  5. déclenchement de Vérification de fichiers ouverts
    Par Nicko29 dans le forum Access
    Réponses: 14
    Dernier message: 09/09/2006, 10h21

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