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 :

[VBA-E] Déconnection Automatique Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut [VBA-E] Déconnection Automatique Excel
    Bonjour à tous, est-ce possible de déconnecter une personne qui n'utilise pas un fichier excel pendant disons 10 minutes.

    C'est que j'ai un formulaire en Excel avec du VBA qui est utilisé par plusieurs utilisateurs. Lorsqu'un utilisateur a ouvert le fichier et ne l'utilise pas, les autres ne peuvent pas l'utiliser car il y a une utilisateur dans le fichier. J'aimerais qu'il se déconnecte en sauvegardant les données après une dizaine de minute.

    Merci


  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    salut bully. tu as de la chance, je n'arrive pas a dormir, et le probleme m'a interressé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim PauseTime, Start
        PauseTime = 10    ' Définit la durée.
        Start = Timer    ' Définit l'heure de début.
        Do While Timer < Start + PauseTime
            DoEvents    ' Donne le contrôle à d'autres processus.
        Loop
        ThisWorkbook.Save
            Application.Quit
    End Sub
    a placer dans le code des feuilles, pas dans un module.
    ici le 10 est pour 10 secondes, si tu veux le regler a 10 mn, c'est 600
    voila voila
    a plus

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Je vais tester et te revenir.

    Merci

    Bully.

  4. #4
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Merci, ça fonctionne très bien.

    Bully.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Bonjour, petit bug et je ne sais pas comment le régler.

    La déconnection fonctionne. Le problème c'est que lorsque la macro entre en fonction, je suis incapable de faire autre chose, genre lorsque je clique sur mon bouton trier par Date, cela ne fonctionne pas, il veut pas trier ou si je veux ajouter un record toujours en cliquant sur un bouton, il ne trouve pas à quel record je suis rendu comme si la macro de la déconnection automatique était prioritaire et que je ne pouvais pas faire autre chose.

    Merci

    Bully

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    je ne sais pas. je t'ai calculé cette macro comme ça, je n'en connais pas toutes les subtilités. manifestement le doevents laisse la main a d'autres utilisations, mais peut etre pas à d'autres macro. si c'est le cas, perso, je cale, je ne vois pas de moyen de contrer ça. désolé

  7. #7
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Merci

  8. #8
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Merci, j'essaie cela et te reviens.

    Bully

  9. #9
    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
    Tu peux egalement utiliser la fonction OnTime, qui te permet de lancer d'autres macros en attendant...
    Dans le module ThisWorkbook :
    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
    Dim deconnexion
    Const tps_deconnect = "00:10:00"
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        On Error Resume Next
        Call Application.OnTime(deconnexion, "ThisWorkbook.Verif_Inactivite", , False)
    End Sub
     
    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
            MsgBox "deconnexion"
        Else
            Application.OnTime deconnexion, "ThisWorkbook.Verif_Inactivite"
        End If
    End Sub
    Ensuite, il ne te reste plus qu'a re-calculer deconnexion a chaque action de l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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
    Et autres evenements...

    Edit : ajout de l'annulation du OnTime à la demande de fermeture du fichier (BeforeClose). Mais si l'utilisateur ne ferme pas le fichier après l'alerte d'enregistrement...

  10. #10
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Bonjour Dadavyvy,

    Après de nombreux test et recherche, la déconnexion fonctionne très bien. Lors de mes test, j'ouvre le fichier et j'attend qu'il se ferme, ça va bien, il se ferme et tout va pour le mieux. Mais après un certain temps, je ne sais pour qu'elle raison, le fichier se ferme comme d'habitude mais réouvre immédiatement, il peut faire cela à l'infini, j'ai beau chercher pourquoi mais là, je ne trouve pas la raison de cela.

    Merci.

    Bully.

  11. #11
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Merci Dadavyvy, c'est moi le problème, ça ne fonctionnais pas un moment donné donc je essayé en appelant Call de verif_inactivite dans le selectChange, calculate et change donc à chaque fois il relançais la procédure.

    C'est de ma faute. Ça fonctionne très bien.

    Merci à toi.

    Bully.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/05/2007, 10h56
  2. [VBA-E] Ouverture automatique d'un fichier excel sur un réseau
    Par NiKoS29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/04/2007, 15h57
  3. [VBA-E] enregistrement automatique d'un fichier excel
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 06/02/2007, 20h47
  4. redimensionnement automatique excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2006, 16h35
  5. [VBA-E] Macro automatique ouverture Excel
    Par P50 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/04/2006, 11h42

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