Salut,

j'essai de créer une marco me permettant d'effectuer le calcul suivant (fonction qui n'est pas ds excel):
Nom : Untitled.jpg
Affichages : 71
Taille : 8,7 Ko

Je précise que je débute avec VBA, alors soyez gentils envers un pauvre geologue perdu ds le monde de vba ^^
Le code me semble bon et pourtant les résultats sont assez discutables. Une fonction qui en découle devrait varier de 0 à 1 (fonction de cohérence pour les connaisseurs) et moi j'ai des valeurs supérieurs à 600, donc soucis.

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
'CALCUL DU CO-SPECTRE________________________________________________________________________________________________________
'Paramètres INPUT-------------------------------------
 
 
a = Range(Field_SelectedOutputRange).Row                                                    'ligne de départ pour l'affichage des résultats
b = Range(Field_SelectedOutputRange).Column + 6                                             'colonne de départ pour les résultats
n = Range(Field_SelectedInputData).Count                                                    'Nombre d'observation
m = Round(n / 3, 0)                                                                         'troncature
Dim Pi As Double                                                                            'definition de pi...
Pi = 4 * Atn(1) '......
C = Range(Field_SelectedOutputRange).Row + 1                                                'ligne de rxy(0)
d = Range(Field_SelectedOutputRange).Column + 2                                             'colonne de rxy(0)
i = 3                                                                                       'nombre de colonne entre Rxy et Ryx
 
'Calcul----------------------------------------
 
Cells(a, b + 1) = "Hxy"                                                                       'Label de la colonnne
Cells(a, b) = "f"                                                                       'Label de la colonne
 
For j = 1 To m                                                                              'Pour j=0 à m
F = j / (2 * m)                                                                             'on calcul f
Hxy = 0                                                                                     'initialisation de Hxy
z = 0                                                                                       'initialisation de z, variable temporaire
 
For k = 1 To m                                                                              'Pour k=1 à m                                                                                     'on initialise rk
dk = (1 + Cos(Pi * (k / m))) / 2                                                            'on calcul dk
Rxy = Cells(C - 1 + k, d)                                                                   'valeur de rxy
Ryx = Cells(C - 1 + k, d + i)                                                               'valeur de Ryx, i égal au nombre de colonne entre Rxy et Ryx
z = z + ((Rxy + Ryx) * dk * Cos(2 * Pi * F * k))                                            'on en déduit z
Next k                                                                                      'on passe à k+1
 
Hxy = 2 * (Cells(C, d) + z)                                                                 'calcul de Sf à partir de la valeur final de z
Cells(a + 1, b + 1) = Hxy                                                                   'on affiche sf ds la cellule A,B
Cells(a + 1, b) = F                                                                         'on affiche f ds la colonne suivante
a = a + 1                                                                                   'on passe à la ligne suivante
 
Next j                                                                                      'on passe au j suivant
Si mon code est faux alors je vois pas ou, j'aurais besoin d'un avis exterieur?
ou d'un bon logiciel qui fait les "times series analysis" appliqué au karst, mais la je reve un peu je crois.

++

merci et a bientot