Projet VBA

Turpinou Messages postés 442 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un projet à faire, pour ma troisième année d'étude, en VBA, et n'étant absolument pas compétent dans ce domaine je demande votre aide.

Voici le sujet : Afficher les valeurs d'une action (AAPL par exemple) dans le temps (à partir de Yahoo). Soit une stratégie d’investissement à partir d'un capital M: si la valeur monte, on vend, si elle baisse, on achète. Calculer le gain de cette stratégie et le comparer avec la stratégie aléatoire.


J'ai donc importer une base de donnée de trois mois du CAC40 sur mon tableau, avec toute les modifications nécessaire mais les données s’arrête aujourd'hui : y a t'il un moyen d'actualiser les données au jour le jour ?

En outre, je ne sais pas du tout par où commencer : même littéralement je ne saurais pas vraiment m'y prendre...

Merci pour votre aide !

4 réponses

  1. Turpinou Messages postés 442 Statut Membre 36
     
    C'est bien pour cela que je demande des pistes de réflexion, afin de commencer moi même.
    Voici mon début de composition permettant la copie des données :
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      merci de toujours partager le texte du code, et pas une image, tout en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      trouver des pistes de réflexion, c'est souvent la partie la plus utile de l'exercice. nous t’empêcherions d'apprendre, d'acquérir des compétences et de progresser si nous faisions cela à ta place.

      écris ce que tu comprends de l'énoncé de l'exercice, ce que tu ne comprends pas, les questions que tu te poses.
      écris aussi comment tu va résoudre l'exercice.
      prends ton temps.

      inutile de travailler sur le code avant d'avoir bien réfléchi sur l'ensemble.
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Sans parler exercice.....
    le code que tu montres sert à mettre en place (via macro) une connexion à des données externes.
    Tu aurais tout aussi bien pu le faire sans utiliser de macro... l'option étant directement accessible depuis le ruban excel.
    Une chose que tu n'as pas vu, c'est l'option "Refresh" que tu as défini à false.....
    En la passant à TRUE les données s'actualiseront .....

    0
    1. Turpinou Messages postés 442 Statut Membre 36
       
      Bonjour Jordane,

      Je me permets de reposer la question : j'utilise bien le ruban excel pour integrer mes données provenant de Yahoo, mais via la rubrique "from text" et non pas "from web" puisque avec cette dernière je ne peux pas avoir accès à la fenêtre "text import wizard" me permettant de formater le tableau (reconnaître les points comme virgules, le tableau date, ainsi que séparer les colonnes via les virgules du texte brut). En bref, je peux importer une fois les données proprement mais je ne peux pas actualiser la base.
      Comment procéder selon vous ?
      0
  3. Turpinou Messages postés 442 Statut Membre 36
     
    Bonjour,

    J'ai bien conscience qu'il me faille apprendre mais j’espérais passer sur ce projet moins d'une vingtaine d'heure sachant que ce n'est qu'une mineure dans mon bi-cursus.

    Voici donc mes trois macro me permettant de calculer le gain total ci joint.

    Premier problème, en plus d'être très simpliste comme codage, est qu'il pourrait fonctionner si pour chacune des actions on devait acheter puis vendre puis acheter puis vendre... Or si je me retrouve à vendre deux fois de suite, respectivement acheter, le résultat n'a plus de sens. Un conseil ?

    En outre, jordane45, j'utilise bien le ruban excel pour integrer mes données mais via la rubrique "from text" et non pas "from web" puisque avec cette derniere je ne peux pas avoir accès à la fenetre "text import wizard" me permettant de formater le tableau (reconnaître les points comme virgules, le tableau date, ainsi que séparer les colonnes via les virgules du texte brut). En bref, je peux importer une fois les données proprement mais je ne peux pas actualiser la base. Suis-je clair ?

    Je rappelle que je suis encore grand débutant en VBA.

    Merci pour le temps que vous pourrez me consacrer

    Sub Analyse()
    
    ' on veut obtenir le montant des plus-values
    
    Dim y As Integer
    Dim z As Integer
    Dim x As Integer
    y = 0
    
    For i = 2 To 260
    
    'x étant la différence entre l'ouverture et la fermeture
            x = Cells(i, 2).Value - Cells(i, 5).Value
    
    'y étant la comparaison entre deux jours
            y = x - y
            z = x - y
            Cells(i, 8).Value = z
    
       If z < 0 Then
       Cells(i, 9).Select
        ActiveCell.FormulaR1C1 = "achat"
            
       End If
       
       If z > 0 Then
       Cells(i, 9).Select
        ActiveCell.FormulaR1C1 = "vente"
        
        End If
           
    Next i
        
    End Sub


    Sub Investissement()
    
    'entrée du montant
    'permet de connaitre le nombre d'actions vendues ou achetées
     x = InputBox("Rentrez la valeur de votre capital", "Investissement", "1000000")
    
    Range("L4").Select
    ActiveCell.FormulaR1C1 = x
    
    
    For i = 2 To 258
    
        a = Cells(i, 9)
        
        If a = "achat" Then
            Cells(i, 10) = Int(x / Cells(i, 2))
            
        End If
    Next i
    
    For i = 2 To 258
    
        a = Cells(i, 9)
        
        If a = "vente" Then
            Cells(i, 10) = Cells(i - 1, 10)
            
        End If
    Next i
    End Sub


    Sub gain()
    ' calcul la somme du montant de chaque action
    
    For i = 2 To 258
        Cells(i, 11) = Cells(i, 10) * (Cells(i + 1, 8))
        
     Next i
        
    Set MaPlage = Range("J2:J258")
    
    MaSomme = Application.WorksheetFunction.Sum(MaPlage)
    Cells(4, 13) = MaSomme
    
    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      écris ce que tu comprends de l'énoncé de l'exercice, ce que tu ne comprends pas, les questions que tu te poses.
      écris aussi comment tu va résoudre l'exercice.
      prends ton temps.

      inutile de travailler sur le code avant d'avoir bien réfléchi sur l'ensemble.
      0
    2. Turpinou Messages postés 442 Statut Membre 36 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Si je me retrouve à vendre deux fois de suite, respectivement acheter, le résultat n'a plus de sens. Un conseil ?

      Sous entendu, je ne comprends pas comment pallier au problème des achats ou ventes consécutifs.

      Dans cette première partie d'exercice, je dois calculer le gain fait à chaque vente et le soustraire aux pertes sèches.
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Turpinou Messages postés 442 Statut Membre
       
      comme tu n'expliques pas comment tu abordes cet exercice, je ne comprends pas pourquoi c'est un soucis d'avoir deux opérations consécutives identiques.
      0
    4. Turpinou Messages postés 442 Statut Membre 36 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Mon code (macro 2 ligne 15) est trop simple : avec un montant donné x j’achète une quantité d’actions quand le prix a baissé la veille.

      Sauf que s’il baisse encore un deuxième jour consécutif je me retrouve à devoir en racheter d’autres alors que je n’ai normalement plus de capital disponible.
      De même quand je vends mes actions, si le prix monte encore je ne devrais normalement plus rien vendre.

      Comment formuler le processus d’achat et de vente lorsque que le prix fluctue ?
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Turpinou Messages postés 442 Statut Membre
       
      oublie le code et l'ordinateur pour le moment.
      Comment formuler le processus d’achat et de vente lorsque que le prix fluctue ?

      C'est exactement ce que tu dois réaliser pour résoudre l'exercice.

      écris ce que tu comprends de l'énoncé de l'exercice, ce que tu ne comprends pas, les questions que tu te poses.
      écris aussi comment tu vas résoudre l'exercice.
      prends ton temps.
      0