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 :

Compte à rebours


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de allergique
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 151
    Par défaut Compte à rebours
    Bonsoir,

    J'aimerais à l'ouverture de mon fichier excel afficher un userform laissant à l'utilisateur X secondes pour cliquer sur un des boutons de contrôle.

    Passé ce délai, sans clic de l'utilisateur la macro ferme l'userform et déroule une macro.

    Est-ce possible d'afficher un userform avec un compte à rebours dynamique, mais ne bloquant pas le clic sur les boutons de contrôle durant le décompte?

    Merci d'avance pour votre aide!

  2. #2
    Membre confirmé Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Par défaut
    Salut teste sa, sa devrai marcher:

    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
     
    Sub Chrono()
        Dim sngDepart As Single
        Dim sngArrivee As Single
        Dim lng As Long
     
        sngDepart = Timer
     
        For lng = 1 To 1000000000
     
        Next
     
        sngArrivee = Timer
        MsgBox "Temps écoulé = " & sngArrivee - sngDepart & " secondes", vbInformation, "Chronomètre"
    End Sub

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    a attrox :

    1) attention : l'utilisation de la fonction Timer sans passer la main au système empêchera le click sur le bouton de command. Y insérer un DoEvents est nécessaire ...
    2) je n'aime pas vraiment ce genre d'utilisation, mais ce n'est pas grave pour le processeur s'il ne s'agit que de 10 secondes...
    Je donnerais malgré tout la préférence à l'utilisation bien faite d'une variable booléenne et de Application.Ontime.

  4. #4
    Membre confirmé Avatar de allergique
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 151
    Par défaut
    Bonjour,

    Le code me fait planter excel, donc j'ai revu le fonctionnement de ma macro avec "Application.Ontime" et une combinaison de touches au lieu d'un userform.

    A l'ouverture du fichier, si l'utilisateur presse les touches Ctrl+F3 avant les 15 sec, une macro se lance.
    Passé ce délai, une autre macro se lance .

    Voiici le code que j'ai mis:

    Dans Thisworkbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Open()
     
    'Si appui simultané des touches Ctrl+F3, annule màj automatique
    Application.OnKey "^{F3}", "maintenance"
    'Au bout de 15 sec, lance macro màj pour vérifier si mise à jour annulée
    Application.OnTime Now + TimeValue("00:00:15"), "majauto"
    End Sub
    Dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Public maintenance2 As Boolean
     
     
    Sub maintenance()
     
    'affiche état maintenance pour désactiver la mise à jour
    maintenance2 = True
    'informe annulation de mise à jour
    MsgBox "La mise à jour automatique est annulée"
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub majauto()
     
    If maintenance2 = False Then
        vérifdate
    End If
     
    End Sub

    Le code fonctionne bien lorsqu'on presse Ctrl+F3.

    En complément, est-ce qu'on peut faire les choses suivantes:
    - Réduire l'application excel dans la barre des taches automatiquement à l'ouverture du fichier
    - Détecter une combinaison de touches "Onkey" lorsque l'application est réduite en barre des taches? Ce serait une combinaison de touches sous windows et pas sous excel qui serait faite

    Merci

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par allergique Voir le message
    - Réduire l'application excel dans la barre des taches automatiquement à l'ouverture du fichier
    - Détecter une combinaison de touches "Onkey" lorsque l'application est réduite en barre des taches? Ce serait une combinaison de touches sous windows et pas sous excel qui serait faite
    Bonjour, allergique,

    J'ai montré ce code il y a entre 3 et 4 mois environ..(je ne me rappelle plus bien quand exactement)
    Il va falloir faire une recherche avec mon pseudo

  6. #6
    Membre confirmé Avatar de allergique
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 151
    Par défaut
    Bonjour ucfoutu,

    Pour la réduction dans la barre des tâches à l'ouverture, j'ai trouvé le code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WindowState = xlMinimized

    Par contre, pour le raccourci détecté quand excel n'a pas le focus, je n'ai pas trouvé.
    J'ai cherché dans les 37 pages pour ton pseudo, mais j'ai juste un lien vers un sujet qui n'est pas résolu

    http://www.developpez.net/forums/d53...s-clavier-vba/

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bon...

    Si je comprends bien, il va falloir que je cherche moi-même ...

    Bon... (et bien que cette question n'ait plus rien à voir avec le sujet oiriginel de cette discussion)... donne-moi quelques minutes et je fais un EDIT avec le lien...

    EDIT, donc :

    Voilà :

    http://www.developpez.net/forums/d64...erform-bouton/

    Ceci étant dit, je crains fort que la présente réponse sera à son tour difficile à retrouver (la discussion étant ouverte sur un "compte à rebours) ... mais bon ...

  8. #8
    Membre confirmé Avatar de allergique
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 151
    Par défaut
    merci d'avoir pris sur ton temps pour rechercher le post

    Je vais regarder, et voir si c'est adaptable à mon fichier

    Bonne journée

Discussions similaires

  1. [timer] Compte à rebours pour redirection !
    Par Raideman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2005, 20h07
  2. Compte à rebours
    Par Anduriel dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/12/2005, 20h12
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

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