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 Discussion :

attendre la fin d'une acquisition


Sujet :

VBA

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut attendre la fin d'une acquisition
    bonjour à tous
    je travaille en vba sur le logiciel pulselabshop (v6.0)
    ce soft sert à récupérer des signaux acoustiques
    ma macro permet de faire plusieurs acquisitions à la suite puis enregistrer les données dans un fichier texte; chaque acquisition dure 10s
    mon problème est le suivant:
    l'avancement du code de la macro n'attends pas la fin de l'acquisition (code: pulselabshop.start).
    j'ai trouvé un moyen de la faire fonctionner mais j'aimerai éviter de devoir cliquer lors des mesures successives:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PulseLabShop.start
    check = timer
    start = timer
    tempo=10
    while check<tempo+start
    msgbox "attends 10s"
    check=timer
    wend
    sans l'apparition de la msgbox, l'acquisition ne se fait pas, la commande etant passé. j'ai déjà essayer les "sleep" et "do event", même constat. j'ai essayer également de créer un userframe avec date d'expiration de 10s, mais elle aussi prends le dessus sur ma mesure.

    j'ai pas trouvé de flag indiquant la fin des mesures non plus.

    pour finir, voici ou sont sauvegardé les données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim FunctionData As Object
        Dim Data As Variant
    Set FunctionData = Project.FunctionOrganiser.FunctionGroups("LOG").Functions("Spectre dB (Input " & NumeroMicro & ")").FunctionData
        Data = FunctionData.GetAllValues(True)
    j'aurais voulu verifier si la derniere case etait vide et attendre tant qu'elle ne l'est pas

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while data(1600,0) is empty
    wend
    mais avant d’être remplie, cette case est de type <type mismatch>, donc je sais pas comment faire ma condition, is empty ne marchant pas
    (de toute façon je doute que ça marche ...)


    comment puis je faire ? thread avec l'userform? (si oui, je veux bien l'adresse d'un cours simple en VB, j'en ai pas trouvé)

    merci d'avance !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    j'ai choisi de créer un userform comme une messagebox mais avec une date limite de 20s. le problème étant que quand cette user s'affiche elle bloque le code. j'aimerai la faire devenir modal donc (comme la msgbox non ?)
    pour l'instant le soft fonctionne pke j'ai fait un truc dégueulasse (et mauvais pour la santé des épileptiques!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub UserForm_Activate()
        popup.Hide
    End Sub
    userform popup s'ouvre et se ferme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub fenetrepopup()
        UserForm2.Hide
        waiting
        Dim Check, start, tempo As Long
    Check = Timer
    start = Timer
    While Check < start + 20
    Check = Timer
        popup.Show
        waiting
    Wend
        UserForm2.Show
    End Sub
    et la en fait j'appelle popup qui se ferme pendant 20 secondes.
    si je met ma tempo dans userform popup, mon acquisition s’interrompt.
    Userform2 est ma form principale, et pour info, waiting:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub waiting()
     
    Dim i As Integer
     
     
    For i = 1 To 1000
     
        DoEvents
     
    Next i


    Des idées ?
    merci

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Modifie la propriété ShowModal du UserForm "popup" et met là à False
    Ou directement via le code
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Discussions similaires

  1. Attendre la fin d'une fonction
    Par benjhe dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/12/2007, 14h44
  2. Attendre la fin d'une popup
    Par maxattack dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/07/2007, 21h27
  3. [JFrame] Attendre la fin d'une autre fenêtre
    Par nicolas.pied dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/12/2005, 09h14
  4. Attendre la fin d'une action
    Par ederoeck dans le forum Access
    Réponses: 3
    Dernier message: 24/09/2005, 08h36
  5. [FLASH MX2004] Attendre la fin d'une anim
    Par stailer dans le forum Flash
    Réponses: 2
    Dernier message: 11/07/2005, 12h47

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