Bonjour,

Je suis débutant sur vba et j'ai un petit soucis avec une fonction d'excel que je souhaiterais intégrer dans une macro vba.
En gros j'ai une feuille de calcul remplie de données (des mesures concernant des véhicules), en sachant que pour un seul véhicule, qui est repéré par un numéro, j'ai plusieurs dizaines de lignes de données (quantité qui varie selon les véhicules).
Donc je souhaiterais appliquer la fonction polyA avec une boucle, me permettant ainsi d'avoir le coef recherché pour chacun des véhicules.
La fonction polyA permet de calculer les coefficients d'une courbe par la méthode des moindres carrés. Dans mon cas je veux une droite horizontale donc un polynome de degré 0.
4 parametre doivent etre entrés pour cette fonction :
Mat x : la colonne des abcisses
Mat y : la colonne des ordonnées
N : le degré du polynome (ici 0)
I : un coefficient qui vaut 1 par defaut
C'est facile d'utiliser ceci directement sur excel mais je ne sais pas comment rentrer ces parametres dans vba.

Voici mon code

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
Sub PolyA()
 
Dim index As Long
Dim nb As Integer
Dim start As Long (ligne de début pour un vehicule)
Dim fin As Long (ligne de fin pour le meme vehicule)
Dim Val As Integer
 
    index = 2
    nb = 0
    start = 2
    fin = 2
    Val = 0
 
    Dim nbligne As Long
 
    nbligne = 66000
 
    Do
 
        Val = Cells(index, 2).Value
 
        Do
 
             index = index + 1
             nb = nb + 1
 
        Loop While Cells(index, 2).Value = Val
 
        If Cells(index, 2).Value = "" Then
            nb = nb - 1
        End If
 
        fin = start + nb - 1
 
        Dim coef As Long
        coef = polya((start,7);(fin,7):(start,11);(fin,11);0;1)
Next
 
        Cells(start, 12).Value = coef
 
        start = index
        nb = 0
 
        If IsEmpty(Cells(index, 2)) Then
             index = nbligne + 1
        End If
 
    Loop While index < nbligne
 
End Sub
DOnc voilà si quelqu'un pouvait eclairer ma lanterne sur cette fonction ca m'aiderait grandement.
J'espere avoir été clair, merci d'avance