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 :

Macro dans un timer, le timer passe après ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Par défaut Macro dans un timer, le timer passe après ?
    Bonjour,

    j'ai voulu programmer un timer pour qu'il me dise toutes les secondes quel est la valeur contenue par un compteur s'incrémentant de 1.

    A ma grande surprise, je n'obtiens pas de valeurs intermédiaires toutes les secondes mais seulement à la fin de la boucle d'incrémentation du compteur. Comment puis-je faire ? merci

    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
    Public ProchainChrono, Départ, k
    Sub Demarre()
     Départ = Timer()
     majChrono
    End Sub
    Sub majChrono()
     
    Call compteur
     Range("a1") = ProchainChrono
     Range("a2") = k
     ProchainChrono = Now + TimeValue("00:00:01")
     Application.OnTime ProchainChrono, "majChrono"
    End Sub
     
    Sub arret()
    Application.OnTime ProchainChrono, Procedure:="majChrono", Schedule:=False
    End Sub
     
    Sub compteur()
     
    For i = 1 To 100000000
     
    k = k + 1
     
    Next
     
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour jerem7w,

    Je n'ai pas bien compris ta demande. Ce que tu souhaites faire c'est d'avoir un timer en cellule A1 et un compteur et cellule A2, c'est ça ?
    Que veux-tu afficher exactement dans les deux cellules ?

    Ta Macro à l'heure actuelle dit ceci :
    -> Incrémente de 1 par 1 k jusqu'à 100000000
    -> Affiche moi en A1 Now + 1 seconde
    -> Affiche en A2 k
    -> etc...

    La macro exécute donc dans l'ordre ce que tu lui demandes.

    J'attends ton retour.

    Cordialement,
    Kimy

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Par défaut
    Salut Kimy,

    cette macro doit effectivement afficher :
    le timer en a1
    k en a2

    et ce toutes les secondes, sans attendre que k ait atteint 100000000.

    Pourquoi fais-je fais cela ? Pour tester le fonctionnement du timer, car dans un programme plus sophistiqué j'ai mis une barre de progression qui doit afficher le nombre de lignes traitées.
    Ce nombre de ligne est compté dans une sous macro. Donc je voulais me servir du timer pour récupérer l'info à intervalles fixes : -> donne mois chaque secondes le nombre de lignes que tu as déjà traité.

    Voilà tout.

    Merci

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    En bref, tu veux faire tourner deux macros en même temps :
    - une qui compte le nombre de lignes traitées,
    - une qui toutes les secondes affiche ce nombre de lignes.

    J'ai pigé ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Par défaut
    Kimy,

    oui, c'est exactement cela.

    jeremy

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    VBA n'étant pas multi-tâches …

    Mais bon, tenter DoEvents en ligne n°24.

Discussions similaires

  1. [XL-2010] Utilisation de modules macro dans des feuilles protégées par mot de passe
    Par davimaje dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 14/11/2014, 17h32
  2. Detecter ecriture dans une textBox avec Timer
    Par Shargat dans le forum ASP.NET
    Réponses: 10
    Dernier message: 23/04/2009, 14h13
  3. Réponses: 12
    Dernier message: 22/12/2005, 09h22
  4. [Warning] Macro dans .lib séparé
    Par sorry60 dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 20/04/2005, 17h05
  5. Macro dans excel permettant de voir si un fichier est ouvert
    Par VirginieGE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2004, 07h51

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