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 :

Compteur dans cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut Compteur dans cellule
    Bonjour,

    Je ne sais pas comment m'y prendre pour avoir un décomptage du temps qui s'afficherait dans une cellule. Voici le code :
    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
    Public HeureAlerte
    Option Private Module
    Sub ProchaineAlerte()
        HeureAlerte = Now + TimeValue("00:15:00")  
        Application.OnTime HeureAlerte, "Fin"
    End Sub
    Sub fin()
     
        On Error Resume Next
        Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=False
        'ajout 27/12/2016 ---------
        On Error Resume Next
        Call Activation_Beeper
        '--------------------------
        réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo + vbQuestion)
        If réponse = vbNo Then
            Call ProchaineAlerte
        Else
            ActiveSheet.Shapes("Object 628").Select   '576
            Selection.Verb Verb:=xlPrimary
            MsgBox "Merci de fermer ce classeur sans oublier de l'enregistrer...", vbExclamation
            Call ProchaineAlerte
        End If
    End Sub
    Sub auto_close()
        On Error Resume Next
        Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin", Schedule:=False
    End Sub
    Je vous remercie d'avance pour votre aide.
    jpma75

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je pense que tu peux peut-être t'inspirer de cela :

    VBA Macro On Timer style to run code every set number of seconds, i.e. 120 seconds
    http://stackoverflow.com/questions/2...-i-e-120-secon

    Un peu plus bas dans la discussion, il explique comment afficher l'heure toutes les 3 secondes.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonjour Marot,

    Tu pensais à cette solution ?
    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
    Option Explicit
    Public datHora As Date
     
    Function Cronometro(action As Integer) As Integer 'This return the seconds between two >calls
     
        Cronometro = 0
     
        If action = 1 Then 'Start
            datHora = Now
        End If
     
        If action = 2 Then 'Time until that moment
            Cronometro = DateDiff("s", datHora, Now)
        End If
     
    End Function
    Si oui, je ne vois pas comment la mettre en pratique, même avec l'explication du concepteur !

    Cdt

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Non je pensais à cela :

    Yes, you can use Application.OnTime for this and then put it in a loop. It's sort of like an alarm clock where you keep hittig the snooze button for when you want it to ring again. The following updates Cell A1 every three seconds with the time.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim TimerActive As Boolean
    Sub StartTimer()
        Start_Timer
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Start_Timer()
        TimerActive = True
        Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Stop_Timer()
        TimerActive = False
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Timer()
        If TimerActive Then
            ActiveSheet.Cells(1, 1).Value = Time
            Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
        End If
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Le Grand Manitou (pour ne pas prononcer un autre mot, n'étant pas croyant) seul sait pourquoi je n'interviendrais personnellement que si aucune activité de l'utilisateur pendant une durée supérieure à une limite spécifiée n'est décelée et m'abstiendrais de le faire si je peux constater qu'il est encore actif.
    Ce qui est bien évidemment possible, mais avec l'aide de fonctions de l'Api de Windows et non de VBA uniquement. Et je ne crois pas que nous soyons ici dans une section dédiée à Windows, mais dans une section dédiée à VBA.
    Mais si l'on s'en tient à VBA seul, ma foi, n'hésitons pas à empoisonner l'existence de l'utilisateur par l'apparition de tels messages intempestifs qu'il estimera à juste titre assez gênants.
    J'ai dit plus haut "Manitou" ? Terminons alors par un "Hugh !"
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonjour unparia : Désolé, je n'ai pas compris le sens de ton message.

    Bonjour marot r : Merci pour cette précision. En fait, dans l'exemple que j'ai donné en début de discussion, j'ai un Msgbox qui s'affiche toutes les 15' afin que l'utilisateur ferme l'application s'il ne l'utilise plus. Cela permet à d'autres utilisateurs d'ouvrir ledit fichier et surtout de le modifier, puisqu'il est en partage. Tout fonctionne bien. Ma question était de savoir si je peux afficher un décompte du temps restant, dans une cellule, dès lors que le cycle est lancé ou relancé. Tout ce que j'ai pu lire jusqu'ici affiche le temps et non le décompte. Pour être encore plus précis, s'il le fallait, imaginons la cellule A1 indiquant "15:00" à l'ouverture, puis "14:59" ... "14:58" ...
    J'ai dû mal exprimer mes besoins car j'imaginais que la réponse était d'une simplicité presque indigne pour les intervenants émérites de ce forum.

    Bien cordialement,
    jpma75

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Pas résolu.

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

Discussions similaires

  1. compteur ou variable dans cellule
    Par boom47 dans le forum Excel
    Réponses: 1
    Dernier message: 22/03/2012, 16h21
  2. [D7][DBGrid] Texte dans cellule particulière
    Par moulette85 dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/04/2005, 17h49
  3. Création liste dans cellules Excel en VBA
    Par yazoo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2005, 14h46
  4. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53
  5. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

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