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
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.

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