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

Fermé
Rgt78 Messages postés 8 Date d'inscription vendredi 25 novembre 2016 Statut Membre Dernière intervention 1 novembre 2017 - 25 nov. 2016 à 14:04
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 - 26 nov. 2016 à 08:01
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

1 réponse

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
25 nov. 2016 à 15:16
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 vendredi 25 novembre 2016 Statut Membre Dernière intervention 1 novembre 2017
25 nov. 2016 à 15:40
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 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > Rgt78 Messages postés 8 Date d'inscription vendredi 25 novembre 2016 Statut Membre Dernière intervention 1 novembre 2017
25 nov. 2016 à 17:05
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 vendredi 25 novembre 2016 Statut Membre Dernière intervention 1 novembre 2017 > f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024
25 nov. 2016 à 17:26
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 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > Rgt78 Messages postés 8 Date d'inscription vendredi 25 novembre 2016 Statut Membre Dernière intervention 1 novembre 2017
26 nov. 2016 à 08:01
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