Le code tourne sans erreur mais les valeurs renvoyées dans ma feuille (Pic1) sont fausses je devrai avoir des valeurs différentes de zéro de 2000 à 2200 avec les valeurs indiquées à titre d'exemple. Or je n'ai que la ligne à 2200 qui est différente de zéro.
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 'écriture de l'axe des abscisses sur chaque feuille X1B = X1 - 100 'X1 valeur d'une textbox (par exemple 2050) X2B = X2 + 101 'X2 valeur d'une textbox (par exemple 2250) DerL = X2B - X1B 'Dernière ligne For Ligne = 1 To DerL Step 1 Sheets("Pic1").Cells(Ligne, 1) = X1B 'Pic1 X1B = X1B + 1 Next Ligne 'Pic n°1 Colonne = 2 n1 = Prct1 / np 'Prct1 valeur d'une textbox (100) et np valeur d'une textbox (10) For n = n1 To Prct1 Step n1 For x = -100 To 100 Step 1 'ordonnée xx = x + P1 'z=position du pic renseignée dans l'userform (2100) 'abscisse y = 0.5 * n / ((2 * pi) ^ (0.5)) * 2.71828 ^ (-((x ^ 2) / 2)) + 0.5 * n / (1 + (x ^ 2)) 'n=numéro de pulse, traçage pseudo voigt (50% gauss 50% Lorentz) For Ligne = 1 To DerL Step 1 If xx = Sheets("Pic1").Cells(Ligne, 1) Then Sheets("Pic1").Cells(Ligne, Colonne) = y ElseIf xx <> Sheets("Pic1").Cells(Ligne, 1) Then Sheets("Pic1").Cells(Ligne, Colonne) = 0 End If Next Ligne Next x Colonne = Colonne + 1 Next n
Je pense que l'erreur vient du fait de mes for et qu'il faudrait les remplacer par des loop mais je ne sais pas faire !
Merci pour votre aide
Partager