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

Signaler
Messages postés
8
Date d'inscription
vendredi 25 novembre 2016
Statut
Membre
Dernière intervention
1 novembre 2017
-
Messages postés
15736
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 avril 2021
-
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

Messages postés
15736
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 avril 2021
1 481
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
8
Date d'inscription
vendredi 25 novembre 2016
Statut
Membre
Dernière intervention
1 novembre 2017

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
Messages postés
15736
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 avril 2021
1 481 >
Messages postés
8
Date d'inscription
vendredi 25 novembre 2016
Statut
Membre
Dernière intervention
1 novembre 2017

Re,

Comprends toujours pas votre affaire de
Maintenant je cherche à clearcontent les lignes ou il n'y a rien.
Messages postés
8
Date d'inscription
vendredi 25 novembre 2016
Statut
Membre
Dernière intervention
1 novembre 2017
>
Messages postés
15736
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 avril 2021

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?
Messages postés
15736
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 avril 2021
1 481 >
Messages postés
8
Date d'inscription
vendredi 25 novembre 2016
Statut
Membre
Dernière intervention
1 novembre 2017

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 ?