Bonjour à vous tous,
Je suis régulièrement le forum, et me nourris parmi tous les articles posés. cependant je cale sur mon nouveau projet.
Je travaille sur une automatisation d'un banc. Je dois effectuer un calcul de somme sur 1 colonnes de 2000 lignes toutes les 15s. j'ai 10 séquences pour une ligne.
les données s'incrémente ainsi toutes les 2000 lignes.
J'ai bien trouvé comment utilisé la fonction "Application.WorksheetFunction.Sum(Range("xxx")). je n'arrive pas à la transformer en insérant les variables à l'intérieur.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Sub Acqisition_Oscilo()
 
Openport            'connection au Pico2000a + lecture des caractéristiques du Pico
 
Set_Channel_info    'gestion des calibres des voies de l'oscilo
 
Tirs = 1
For i = 1 To 3 Step 1
 
    Application.ScreenUpdating = False 'bloquage de l'affichage
 
    Aqcisition_Oscilo   ' acqisition de la courbe ascilo
    affichages_des_données (Tirs) ' affichage + mise en forme des données
    Tirs = Tirs + 1
 
 
 
 
    Application.ScreenUpdating = True 'débloquage de l'affichage
    Sleep (2000)
 
Next i
 
closeport ' fermeture de la communication avec l'Oscilo
 
End Sub
 
Function affichages_des_données(ByVal Tirs As Integer)
ReDim valuesChA(1999) As Integer 'dimentionnement de la variable à numSamples - 1
ReDim valuesChB(1999) As Integer 'dimentionnement de la variable à numSamples - 1
ReDim valuesChC(1999) As Integer 'non utilisé mais variable a déclarer obligatoirement
ReDim valuesChD(1999) As Integer 'non utilisé mais variable a déclarer obligatoirement
ReDim times(1999) As Long 'dimentionnement de la variable à numSamples - 1
Dim overflow As Integer
Dim maxSamples As Long
 
Call ps2000_get_times_and_values(ps2000Handle, times(0), valuesChA(0), valuesChB(0), valuesChC(0), valuesChD(0), overflow, timeUnits, numSamples) 'récupération des données + mise en mémoirz
 
decal = (Tirs - 1) * 2000
 
For i = 0 To numSamples - 1            ' routine d'inscription et traitement des données dans la feuill excel
    Cells(i + 4 + decal, "A").Value = times(i) * 0.000001     'convertion de ps en µs
    Cells(i + 4 + decal, "B").Value = ConvertADCToMv(valuesChA(i), 32767, 1000)
    Cells(i + 4 + decal, "C").Value = ConvertADCToMv(valuesChB(i), 32767, 1000)
Next i
 
 
End Function
 
Function data()
 
'For Each i In Tirs
 
    range("B4").Select
    range(Selection, Selection.End(xlDown)).Select
    a = Application.WorksheetFunction.Sum(range("b4:b2000"))
 
 
MsgBox (a)
 
'MsgBox Application.WorksheetFunction.Sum(range("A1:A3,A5"))
    b = Application.WorksheetFunction.Sum(range("b"& decal : "b" & decal "))
 
MsgBox (b)
 
 
End Function