Exécuter un Sub tant qu'il y a du texte

Rgt78 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite exécuter le sub suivant tant qu'il y a du texte dans la colonne A (à partir de A2)
et clearer les autres colonnes s'il n'y a rien en A. Bien sur il faudra remplir D, E, H, I, J et B mais je souhaite me baser sur A qui sera toujours rempli avec le ticker.

Pour l'instant il s’exécute seulement sur les lignes 2 et 3

Qu'elle boucle puis-je utiliser?

Merci

Public Sub OptionPricer()

Dim St As Double
Dim K As Double
Dim T As Double
Dim R As Double
Dim Sd As Double
Dim Option_Type As String

St = Worksheets("Option Portfolio").Range("D2").Value
K = Worksheets("Option Portfolio").Range("E2").Value
T = Worksheets("Option Portfolio").Range("H2").Value
R = Worksheets("Option Portfolio").Range("I2").Value
Sd = Worksheets("Option Portfolio").Range("J2").Value
Option_Type = Worksheets("Option Portfolio").Range("B2").Value

Worksheets("Option Portfolio").Range("C2").Value = OptionPrice(St, K, T, R, Sd, Option_Type)
Worksheets("Option Portfolio").Range("K2").Value = DeltaLetter(St, K, T, R, Sd, Option_Type)
Worksheets("Option Portfolio").Range("L2").Value = GammaLetter(St, K, T, R, Sd)
Worksheets("Option Portfolio").Range("M2").Value = ThetaLetter(St, K, T, R, Sd, Option_Type)
Worksheets("Option Portfolio").Range("N2").Value = RhoLetter(St, K, T, R, Sd, Option_Type)
Worksheets("Option Portfolio").Range("O2").Value = VegaLetter(St, K, T, R, Sd)


Dim St2 As Double
Dim K2 As Double
Dim T2 As Double
Dim R2 As Double
Dim Sd2 As Double
Dim Option_Type2 As String

St2 = Worksheets("Option Portfolio").Range("D3").Value
K2 = Worksheets("Option Portfolio").Range("E3").Value
T2 = Worksheets("Option Portfolio").Range("H3").Value
R2 = Worksheets("Option Portfolio").Range("I3").Value
Sd2 = Worksheets("Option Portfolio").Range("J3").Value
Option_Type2 = Worksheets("Option Portfolio").Range("B3").Value

Worksheets("Option Portfolio").Range("C3").Value = OptionPrice(St2, K2, T2, R2, Sd2, Option_Type2)
Worksheets("Option Portfolio").Range("K3").Value = DeltaLetter(St2, K2, T2, R2, Sd2, Option_Type2)
Worksheets("Option Portfolio").Range("L3").Value = GammaLetter(St2, K2, T2, R2, Sd2)
Worksheets("Option Portfolio").Range("M3").Value = ThetaLetter(St2, K2, T2, R2, Sd2, Option_Type2)
Worksheets("Option Portfolio").Range("N3").Value = RhoLetter(St2, K2, T2, R2, Sd2, Option_Type2)
Worksheets("Option Portfolio").Range("O3").Value = VegaLetter(St2, K2, T2, R2, Sd2)

End Sub

A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

et clearer les autres colonnes s'il n'y a rien en A.
Moi pas comprendre

'boucle sur la colonne A
Public Sub OptionPricer()

    Dim St As Double
    Dim K As Double
    Dim T As Double
    Dim R As Double
    Dim Sd As Double
    Dim Option_Type As String

    With Worksheets("Option Portfolio")
        derlig1 = .Range("A" & Rows.Count).End(xlUp).Row
        For N = 2 To derlig1
            St = .Range("D" & N).Value
            K = .Range("E" & N).Value
            T = .Range("H" & N).Value
            R = .Range("I" & N).Value
            Sd = .Range("J" & N).Value
            Option_Type = .Range("B" & N).Value

            .Range("C" & N).Value = OptionPrice(St, K, T, R, Sd, Option_Type)
            .Range("K" & N).Value = DeltaLetter(St, K, T, R, Sd, Option_Type)
            .Range("L" & N).Value = GammaLetter(St, K, T, R, Sd)
            .Range("M" & N).Value = ThetaLetter(St, K, T, R, Sd, Option_Type)
            .Range("N" & N).Value = RhoLetter(St, K, T, R, Sd, Option_Type)
            .Range("O" & N).Value = VegaLetter(St, K, T, R, Sd)
        Next N
    End With
End Sub
1
Rgt78 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup c'est super, ça marche top! Vraiment merci.

Maintenant je cherche à clearcontent les lignes ou il n'y a rien.
Par exemple si j'ai rentré 4 options puis que je repasse à 3 comment faire pour que la macro efface la quatrième ligne juste en vidant la cellule A.

Merci encore
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Rgt78 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Comprends toujours pas votre affaire de
Maintenant je cherche à clearcontent les lignes ou il n'y a rien.
0
Rgt78 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour votre aide,

Admettons que j'ai 2 options, j'en ajoute une troisième en remplissant A4, D4, E4, H4, I4, J4, B4. Le sub me calcule le prix et les greeks c'est parfait.

Maintenant je souhaite effacer la troisième option, j'efface A4. Comment faire pour que le sub efface le reste de la ligne si A est vide lorsqu'on le relance?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Rgt78 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Ai compris, aurait été plus simple d'écrire ceci:
Ne pas copier la ligne si cellule colonne À vide
À chaque relance il faut donc faire une raz de la ligne si À vide.
Je vous fais ou vous le faites ?
0