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

VBA Access Discussion :

Arrêt de timers VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut Arrêt de timers VBA
    Bonjour,

    J'utilise les timers VBA d'Arkham dans mes applications. Ca fonctionne

    Je cherche juste à faire une amélioration si c'est possible, à savoir arrêter tous les timers qui serait activés.

    Ici, les API

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Déclaration d'API pour timer
    Private Declare Function APISetTimer Lib "user32.dll" Alias "SetTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerProc As Long) As Long
    Private Declare Function APIKillTimer Lib "user32.dll" Alias "KillTimer" (ByVal hwnd As Long, ByVal uIDEvent As Long) As Long
    Ici, le code pour les arrêter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ArretTimers(uIDEvent As Long)
     
     
        APIKillTimer Application.hWndAccessApp, uIDEvent
     
    End sub
    Ou uIDEvent est le numéro du timer.

    Je voudrais donc une procédure supplémentaire (je veux garder la possibilité de les arrêter indépendamment) ou je n'ai pas besoin de passer le numéro du timer en paramètre.

    J'ai essayé de modifier la fonction comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function APIKillTimer Lib "user32.dll" Alias "KillTimer" (ByVal hwnd As Long)
    Je n'ai pas d'erreur, mais les timers continuent de fonctionner.

    Merci pour votre aide.

    Domi2

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut Domi2,

    Pour moi c'est impossible !
    Un API windows utilise des paramètres que tu ne peux pas modifier.

    Tu seras toujours obligé de passer quelque part le numéro du timer

    A+

  3. #3
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Pour moi c'est impossible !
    Effectivement, j'ai fait pas mal de recherche sur Google, tous les exemples que j'ai vu ont un identifiant de timer...

    J'espérais quand même...

    Je laisse encore la discussion ouverte un moment...

    Merci de ton aide.

    Domi2

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 110
    Par défaut
    Bonjour,

    Peut-être qu'en stockant les uidtimer dans un tableau global tu aurais l'inventaire exact ?

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour Loufab,

    Peut-être qu'en stockant les uidtimer dans un tableau global tu aurais l'inventaire exact ?
    C'est effectivement une idée, merci !

    J'utilise au maximum 6 timers et ils ne sont pas toujours actifs à la fermeture de l'application (j'ai un bouton qui me permet de revenir directement à Access, ce qui pose problème).

    J'aurais donc bien voulu faire une fonction générique, plutôt que devoir appeler 6 fonctions. D'un autre côté, je n'ai pas d'erreur si j'arrête un timer inactif. Je vais encore réfléchir à la chose.

    En tout les cas, merci à tous les deux.

    Domi2

Discussions similaires

  1. Arrêt / reprise timer
    Par ju0123456789 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2012, 13h07
  2. [VBA-E]une boucle qui ne s'arrète pas
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/02/2006, 18h05
  3. [VBA-E]Arrêt d'exécution sur une requette d'enregistrement
    Par thierry27 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/02/2006, 18h53
  4. Arrêt VBA au dernier enregistrement
    Par jax69 dans le forum Access
    Réponses: 3
    Dernier message: 23/01/2006, 08h34
  5. VBA/xl97 - Comment arrêter un timer ds user32.dll
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2005, 17h45

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