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:
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.
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
j'ai pas trouvé de flag indiquant la fin des mesures non plus.
pour finir, voici ou sont sauvegardé les données
j'aurais voulu verifier si la derniere case etait vide et attendre tant qu'elle ne l'est pas
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)
genremais avant d’être remplie, cette case est de type <type mismatch>, donc je sais pas comment faire ma condition, is empty ne marchant pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 while data(1600,0) is empty wend
(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 !
Partager