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 :

Test si un classeur est ouvert et plus si affinités...


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut Test si un classeur est ouvert et plus si affinités...
    Existe-t-il un test pour voir si un classeur est ouvert ???

    (Afin de ne pas faire un OnTime sur un classeur fermé qui est donc obligé de redémarrer...)

    Mici !
    Az

  2. #2
    Membre éprouvé
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Bonjour
    Je suppose que tu connais le nom de ton fichier donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For I = 1 To Application.Workbooks.Count
        if application.Workbooks(i).Name=Nom_Fichier then ...
    Next
    Il y a peut être plus rapide
    Slts

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Ca dépend par qui il a été ouvert :
    - la même instance d'Excel :
    http://www.developpez.net/forums/showthread.php?t=98510
    http://www.developpez.net/forums/sho...d.php?t=190645
    - une autre instance d'Excel ou un autre ordinateur :
    http://www.developpez.net/forums/sho...d.php?t=158804
    http://www.developpez.net/forums/showthread.php?t=88464

    j'espere que cela t'aidera.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    Pour l'instant ça ira mais si quelqu'un a ça sans boucle ça m'arrange parce que mon truc est déjà bien lourd (sans mauvais jeu de mot...)

    Merci Plateforme pour cette boucle tout de même astucieuse !!

    Az

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    Dsl Dadavyvy mais j'avais posté avant de voir ton message, entre temps je suis allé voir sur les liens que tu m'a conseillé et je dois avoué qu'il n'ont pas résolu mon problème, aussi vais-je l'expliciter un peu plus.

    J'ai une procédure qui ferme mon fichier excel lorsque je ne l'utilise pas pendant 20 sec. Seulement si je le ferme manuellement, la procédure se poursuit et il m'ouvre, puis me referme mon fichier 20 sec après mon dernier clic sur la page.

    Ce problème vient je pense du OnTime et je voulais donc lui demander de n'éxécuter la procédure que si le fichier était ouvert au moment ou le OnTime lance la procédure... j'espère que vous me suivez, je vous joint le code pour d'avantage de clarté :
    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
    Dim deconnexion
    Const tps_deconnect = "00:00:20"
     
    Private Sub Workbook_Open()
        deconnexion = Now + TimeValue(tps_deconnect)
        Call Verif_Inactivite
    End Sub
     
    Sub Verif_Inactivite()
                If deconnexion < Now + TimeValue("00:00:01") Then
                    ThisWorkbook.Save
                    ThisWorkbook.Close
                    Else
                    Application.OnTime deconnexion, "ThisWorkbook.Verif_Inactivite", False
                End If
    End Sub
    Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
        deconnexion = Now + TimeValue(tps_deconnect)
    End Sub
     
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        deconnexion = Now + TimeValue(tps_deconnect)
    End Sub
     
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        deconnexion = Now + TimeValue(tps_deconnect)
    End Sub
    En espérant que vous voyez ce que je veux dire !


    Az

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Il faut rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        On Error Resume Next
        Call Application.OnTime(deconnexion, "ThisWorkbook.Verif_Inactivite", , False)
    End Sub
    Par contre, si la personne au final ne ferme pas le classeur après l'alerte d'enregistrement...
    Je vais modifier mon précédent post sur le sujet.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    Coucou,
    J'ai essayé et j'ai pas l'impression que ça marche mieux...
    Une fois qu'il a décidé qu'il allait exécuté à cette heure précise, il ne veut pas faire demi-tour...

    Sinon est-ce que tu peux me donner plus d'infos sur la méthode OnTime (et plus particulièrement le Schedule...)parce que dans l'aide c'est pas super clair pour moi...

    Merci d'avance !


    Az

Discussions similaires

  1. [XL-2010] Tester si un classeur est ouvert. Si non, l'ouvrir.
    Par Phouky dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 13/05/2014, 09h19
  2. [XL-2003] tester si un classeur est ouvert
    Par anfernus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/07/2010, 18h21
  3. [XL-2002] Vérifier si un classeur est ouvert
    Par Ptikir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2009, 10h32
  4. Test si un classeur est ouvert sans Gestion d'erreur
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/01/2009, 10h19
  5. Réponses: 9
    Dernier message: 22/10/2007, 13h34

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