Script

babermtl Messages postés 2 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 21 avril 2008 - 21 avril 2008 à 16:36
babermtl Messages postés 2 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 21 avril 2008 - 21 avril 2008 à 16:46
salut, je travail sur une application d'acquisistion de données (je lis chaque 5s une donnée d'un capteur v2020 et je transmet ca sur une page excel), alors j'ai élaboré le script suivant:
Dim varia As Integer


Private Sub CommandButton1_Click()
'Row / Column positions
'
Dim Temp1x As Integer
Dim Temp1y As Integer
Dim j As Integer
Dim PauseTime, Start
'Predefined Column offsets'
Temp1x = 3
varia = 0
Channel = DDEInitiate("DSData", "DemoTopic")
Worksheets("Sheet1").Cells(1, 1).Value = DDERequest(Channel, "c40:B")


j = 0


 Do While varia = 0


  If Worksheets("Sheet1").Cells(1, 1).Value = 1 Then
  j = j + 1
 
   For i = 1 To 20
   
    PauseTime = 5    ' Set duration.
    Start = Timer    ' Set start time.
      Do While Timer < Start + PauseTime
         DoEvents    ' Yield to other processes.
      Loop
              
      Temp1y = i
      Worksheets("Sheet1").Cells(Temp1y, Temp1x + j).Value = DDERequest(Channel, "V2020:B")
      Worksheets("Sheet1").Cells(1, 1).Value = DDERequest(Channel, "c40:B")
      Worksheets("Sheet1").Cells(8, 1).Value = i
      Worksheets("Sheet1").Cells(9, 1).Value = j
      
    Next i
   End If
    Do While Timer < Start + PauseTime
         DoEvents    ' Yield to other processes.
    Loop
        If Worksheets("Sheet1").Cells(1, 1).Value = 0 Then
        i = 1
        End If
 
 Loop
  
DDETerminate Channel


End Sub


Private Sub CommandButton2_Click()
varia = 1
End Sub

le probléme ds ce script c'est qu'il m'enregistre les donées sur une seule colonne, et moi je veux que pour chaque transition de c40 (passage de 1 à 0) qu'il passe à l'autre colonne.
Merci d'avance pour votre support

2 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2008 à 16:41
Salut,
Si tu sais détecter la transition de C40 de 1 à 0 il te suffit de crée une variable NumCOl que tu incrémentes puis

au lieu d' avoir Worksheets("Sheet1").Cells(9, 1).Value = j
tu aurais Worksheets( "Sheet1" ).Cells(9, NumCol).Value = j

@+: Ju£i?n
Pensez: Réponse acceptée
0
babermtl Messages postés 2 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 21 avril 2008
21 avril 2008 à 16:46
ok merci bcp je vais essayer cette solution mais il'arrive que le programme friz a cause de ce passage de 1 à 0 du c40 est ce que tu as une idée d'ou cela vient?
merci d'avance
0
Rejoignez-nous