Faire correspondre des colonnes de date + calculs

Bonjour,

Alors après avoir essayé je ne sais combien de "techniques", dans la limite de mes connaissances en VBA (Novice), je vous demande de l'aide !!

Ma situation :

J'ai 2 listes de dates avec leur rendement (du style de cotations boursières, actif + benchmark). Mais les dates ne sont pas forcement les mêmes dans les 2 listes. Mon objectif c'est de pouvoir comparer les données pour des dates identiques. Donc ce qu'il faut c'est qu'à la fin je n'ai qu'une seule liste de date avec 2 listes de rendements.

Pour compliquer la chose, lorsqu'une date n'est pas présente dans l'autre liste, le rendement correspondant est cumulé avec le suivant Rdt2 = (1+Rdt1)*(1+Rdt2)-1 .

J'ai essayé des boucles, des If mais à chaque fois je bloque au moment où une date est différente et que je dois faire un calcul..

J'ai mis dans le fichier excel, un exemple de fichier de base et le résultat attendu.

Je vous remercie pour votre aide !!

Salut Mxgan,

tu peux m'expliquer plus précisément comment tu calcules et obtiens 11, 36 et 53 avec ça ?

Jamais été fort en math...

= (1+Rdt1)*(1+Rdt2)-1

A+

Resalut Curulis !!

Il applique sa formule ! Mais... comme on ignore à quoi se réfèrent les % en regard de chaque date, c'est abstrait.

Ce que je ne comprends pas c'est pourquoi on supprime les dates qui ne figurent que dans une liste, alors que la nouvelle liste reconstituée pourrait les intégrer !

Le seul problème c'est si plusieurs jours étaient sautés, là plus moyen de reconstituer par calcul !

Mais si on m'annonce que c'est financier, mon allergie à la finance prendra le dessus

Salut !

Salut MFerrand,

tu as raison! Je n'avais pas fait attention : ce sont des % !

On ne va pas couper les cheveux en 4 et faire, si tu veux bien, abstraction de ta judicieuse remarque : let' go!

Toi en formule et moi en VBA !

Chacun son truc!

Profite du soleil! Ici, il fait dégueu !

A+

Oh yen avait pas plus ! Mais pas trop inquiété, j'ai dormi une bonne partie du jour, et il fait nuit depuis longtemps.

Bonjour Mxgan,

voilà ton calcul!

Evidemment, ne change rien à ta façon d'encoder tes données sinon je ne réponds plus de rien!

Il y a une certaine logique dans ce chaos mais il ne faut pas pousser!

Comme le disait MFerrand, si tu te mets à sauter plusieurs jours entre dates, il risque d'y avoir des problèmes de cohérence!

Je n'ai pas non plus tenu compte de la colonne C, plus longue et orpheline de sa voisine. Le calcul choisit la solution la plus courte pour être sûr d'avoir deux dates à comparer!

Bon travail!

A+

Bonjour,

Merci beaucoup pour votre travail !

On ne supprime que les dates présentent dans une liste pour que justement le rendement de la future date commune intègre celui des précédentes différentes. (Une méthode de nettoyage, moi aussi j'ai eu du mal à comprendre pourquoi ils faisaient comme ça (dans ma boite)).

Vous avez soulevez un problème qui peut arriver. Que faire quand il y a plusieurs dates qui sautent?? ça fonctionne parfaitement pour une seule date d'écart mais s'il y en a 2,3... c'est autre chose ahah

Pourriez vous m'aider une fois de plus? (j'ai "changer" les données pour que vous puissiez voir quelque chose de plus "réel")

Encore merci !!!!!!!

Bonjour Mxgan,

je regarderai ça demain en soirée! Mon fichier est resté sur un ordinateur, ailleurs!

Mais, là, je pense que mes iOff2 et iOff22 vont servir... comme je l'imaginais bien! 8)

Bonne journée!

A+

Merci beaucoup !!!!

C'est quoi, ce berdol ?

Qui remplit les colonnes de données?

C'est toi ? Vous vous y retrouvez ?

Il me faudra plus qu'une nuit pour trouver mon chemin dans ce truc de ouf !

Si tu as plus d'infos quant à la logique de travail (pour vous, déjà!), ça m'aiderait!

A+

Un joyeux bordel !

Malheureusement (ou heureusement) ce n'est pas moi qui remplis les colonnes. Elles sont extraites directement depuis des fournisseurs de données (Bloomberg est..).

On choisit la période sur laquelle on veut extraire les données et ensuite on a soit une bonne surprise soit (le plus souvent) ce genre de truc...

Donc il peut y avoir des "trous" de cotations dans les 2 parties (actif/benchmark -> A/B dans la feuille) et soit on utilise un logiciel pour "nettoyer" les données, soit on le fait à la main.

Ce qui fait que les colonnes sur une même période peuvent être de taille assez différente.. (pas d'alimentation de données récentes par exemple).

Où je suis c'est un logiciel, mais pour des vérification, j'ai besoin de le faire à la main... (il y a aussi une autre méthode de cochon qui consiste à tout simplement supprimer les dates présentent dans une seule catégorie mais c'est tout de suite un peu moins juste^^)

Le principe de calcule ne change pas. S'il y a plus d'un trou, ce sera : Rdt1->3 = (1+Rdt1)*(1+Rdt2)*(1+Rdt3)-1

Si tu as d'autres questions n'hésite pas !!

Et encore merci pour ton aide !!!!!

Salut le financier fou !

au secours!

Bon, j'ai regardé et plus ou moins compris (pas de calculatrice sous la main!) la logique de ce chaos...

Je ne te promets pas de faire ça en 5' non plus, hein d'autant que j'ai la mauvaise habitude de m'en mettre trop sur le dos...

Mais, ton problème m'intéresse et je ferai tout pour le résoudre, autant pour te rendre la vie plus facile que pour ma petite fierté égoïste !

Un peu de patience! Je te tiendrai au courant (peut-être en message privé si je n'ai pas de fichier à te proposer!).

A+!

Merci beaucoup!

Et moi après j'aime bien essayé de comprendre le code ^^

Pour les calculs, un exemple "simple" :

A= 1%

B=2%

C=3%

Si A et B sont des dates seulement présentes dans une colonne alors il faut cumuler leur rendement avec C pour que les 2 colonnes soit harmonisées. Donc C = (1+1%)*(1+2%)*(1+3%)-1 =6,11%

Si ça peut t'éviter de sortir ta calculatrice Ahah

A+

Mais la méthode est idiote quand on dispose des jours ! Il suffit de les réinsérer.

On ne va pas réinséré des dates dans une colonne si on ne connait pas les rendements qui leur correspondent. Le but c'est d'avoir une colonne de dates et 2 colonnes de rendements (actif et benchmark) et tout ça sans aucun trou x).

On peut enlever des dates et cumuler des rendements mais on ne peut pas rajouter de dates si on a pas leur rendement.

Je comprends que ça peut être bizarre et par moment illogique mais moi aussi ça m'énerve que sur une même période il y ait des trous de "cotation" ^^'

La logique et toi ça fait 2 je vois

Tu ne peux calculer que si tu disposes des dates. Les dates existant dans une des listes il suffisait de les fusionner...

C'est pas mon problème d'ailleurs.

Salut Mxgan,

Sauvons les banques : le retour!

Comme promis, je ne t'ai pas oublié!

Bingo! L'inspiration m'est tombée du ciel! Voici ton calcul : pas une erreur! 8)

Teste sur tes fichiers. Les résultats de la macro s'affichent en colonnes 12, 13 et 14

Curieux de savoir si il y a encore des soucis!

A+

Merci beaucoup !!

Au premier coup d'oeil ça à l'air de bien fonctionner !!

Demain si j'arrive à trouver le temps, je vais tester sur les fichiers du boulot (ça sent la petite galère pour adapter les colonnes et lignes ahaha )

Encore merci !!

Bonsoir Mxgan,

ton fichier m'a donné l'envie de le reprogrammer "à la Banzaï", un crack du forum et d'afficher le temps de traitement en "O1".

Alleluia! J'ai réussi et la différence est flagrante (en chiffres seulement vu la petitesse du fichier).

Voici ton fichier avec les deux boutons pour la version "lente" et la "rapide".

Pour ce qui est du fichier final, en fonction de ce que tu feras comme remarques demain, j'ai pensé que ce serait plus pratique de démarrer la macro depuis un clic sur la première ligne de la feuille plutôt que depuis un bouton.

Qu'en dis-tu ?

A+

Rechercher des sujets similaires à "correspondre colonnes date calculs"