Problème sur code vba

Fermé
yanisb - Modifié le 15 oct. 2020 à 16:01
 yanisb - 15 oct. 2020 à 20:38
Bonjour,

Ci dessous mon sujet Vba:

Veuillez à bien commenter vos macros en décrivant l’effet des différentes lignes de votre code lorsque
celui-ci est exécuté. Le fichier Excel est composé d’une feuille sur laquelle se trouve les valeurs,
depuis le début de l’année 2020, de plusieurs actions du CAC40.
1. Créez une Macro insérant une nouvelle feuille sur laquelle vous copierez les dates et les
différentes actions répertoriées dans la feuille « Raw Data ». Ces données doivent être collées
dans la feuille récemment créée, pour les dates sur la colonne 1 à partir de la cellule A2 et pour
le nom des actions sur la ligne 1 à partir de la cellule B1.
2. Créez une fonction permettant le calcul des rendements journaliers des actions (c’est-à-dire,
hors première date, un rendement pour toutes les dates disponibles). La formule à utiliser
correspond à VF/VI-1. Calculez les rendements journaliers sur l’historique de ces actions. Les
résultats doivent être retranscrits sur la feuille créée dans l’exercice 1. Afin d’éviter que votre
formule renvoie vers une valeur fausse (par exemple si le dénominateur VI est égal à 0) vous
devrez mettre une condition dans votre formule. Cette dernière renverra un « 0 » en cas de
dénominateur nul.
3. Sélectionnez 3 actions au hasard. Puis, sur une nouvelle feuille, procédez au calcul des
rendements journaliers sur les 3 actions sélectionnées à l’aide d’une boucle « For » ou « Do ».
(Colonne 1 : les dates, ligne 1 le nom des actions sélectionnées). Votre table de rendement
devrait occuper les 4 premières colonnes du fichier ([1] Date [2] Rendement de l’action 1, [3]
rendement de l’action 2, [4] rendement de l’action 3). (Point bonus si vous faites 2 macros
séparées, une avec une boucle For et une avec une boucle Do)
4. A l’aide des fonctionnalités « For » et « If » créez une macro qui renverra à droite des colonnes
relatives aux rendements calculés dans la question 3., un texte « positif », « négatif » ou
« neutre » selon le signe du rendement.
5. Observez-vous une période particulière sur 2020 ?
6. Créez une macro qui calculera trois écarts types des 3 actions sélectionnées au hasard (vous
devrez utiliser la fonction worksheet.function…) sur (i) les 30 derniers jours ; (ii) les 90 derniers
jours et sur (iii) la totalité de l’historique disponible. Affichez les résultats sur la colonne à
droite de notions « négatif », « positif » ou « neutre » de la question 4.
7. A l’aide d’une boucle double, calculez, sur une nouvelle feuille, les revenus journaliers de
toutes les actions présentes sur la feuille « Raw Data »
8. Rédigez une macro qui renseignera sur la dernière ligne vide de la feuille créée pour la question
7 et pour toutes les actions : l’écart type historique de l’action donnée (c’est-à-dire colonne B
l’écart type de Accor, colonne C celui de Air Liquide etc..).

Support : Un fichier Excel avec des cours de plusieurs actions.

J'ai pu faire la question 1 mais je bloquer sur la question 2.

Pouvez vous m'aider svp c'est à rendre ce soir.
A voir également:

3 réponses

yg_be Messages postés 23300 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024 Ambassadeur 1 549
15 oct. 2020 à 15:45
0
Bonjour désolé je ne savais pas. J'étais pressé de le rendre car on a un délai, j'ai voulu gagner du temps.
Donc pour la question 2, j'ai fait ce code
Public Function RDM(VF As Double, VI As String) As String

RDM = IIf((VI - 1) > 0, (VF / (VI - 1)), 0)

End Function

Public Function rdm(vf As Double, vi As Double) As Double

If vi <> 0 Then
rdm = vf / (vi - 1)
Else: rdm = 0

End If

End Function


Cela me calcule bien le rendement mais ca m'affiche des tirets et non des 0.
0
yg_be Messages postés 23300 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024 1 549 > yanisb
15 oct. 2020 à 16:37
je ne vois pas d'où vient le soucis.
peux-tu partager ton fichier?
0
yanisb > yg_be Messages postés 23300 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024
15 oct. 2020 à 16:41
Avez vous une adresse mail pour que je vous envoie le fichier?
0
yg_be Messages postés 23300 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024 1 549 > yanisb
15 oct. 2020 à 16:47
tu peux le partager ici: tu publies le fichier sur internet (google drive, cjoint.com, ...) et tu partages ici le lien vers le fichier
0
yanisb > yg_be Messages postés 23300 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024
15 oct. 2020 à 16:53
https://drive.google.com/file/d/19nMabHVI9_jaJFFx_wiwb2aWBdiO-ufZ/view?usp=sharing
0
vous savez comment le mettre en public ? j'arrive pas je suis obligé d'accepter par mail les demandes d'accés à ce fichier.
0
yg_be Messages postés 23300 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024 1 549
15 oct. 2020 à 19:57
peut-être peux-tu alors utiliser une autre méthode, plus simple pour toi, pour partager le fichier?
0
oui j'ai reussi à le mettre en public

Le lien du fichier :
https://drive.google.com/file/d/19nMabHVI9_jaJFFx_wiwb2aWBdiO-ufZ/view?usp=sharing

Finalement j'ai reussi à faire les 5 premieres question. Mais je bloque sur la 6 pour determiner les ecarts types
0