Accueil > Forum > > > > macro excel pour suivi de clients en portefeuilles
macro excel pour suivi de clients en portefeuilles
mercredi 30 août 2006 à 00:05:33 |
macro excel pour suivi de clients en portefeuilles

jfloyd
|
Bonjour, Je travaille actuellement sur un fichier excel permettant le suivi en portefeuille de clients. Chaque client a un portefeuille décomposé en 2 parties : un fonds euro et un fonds actions. Le fonds action peut etre composé de plusieurs investissements différents, chacun inscrit sur une ligne différente. Au niveau de la présentation, la feuille de travail affiche sur une ligne les données du client (nom, valeur totale du portefeuille, valeur du fonds euro, pourcentage investi en fonds action...) et ensuite en allant à chaque fois à la ligne chaque investissement réalisé dans le fonds action. Le client suivant est séparé par un saut de ligne. J'essaie de faire une macro permettant de prélever des frais de gestion (en gros diviser des cellules par un nombre fixe) sur le fonds euro et ensuite de recalculer la valeur du contrat (somme du fonds euro et du fonds action). Je dois pour cela selectionner chaque client, renvoyer les cellules correspondantes aux investissements en action, les diviser par un nombre prédéfini (disons un prélèvement de 0.25%), faire la somme des nouvelles valeurs investies en action, et recalculer le montant total du contrat (comme somme du fonds euro et du fonds action). La difficulté réside dans le fait que le nombre d'investissement diffère d'un client à un autre, et qu'il peut etre amené a changer lors d'une opération d'arbitrage (basculement d'un investissement en action vers le fonds euro, et suppression de la ligne correspondante). Je dois faire une somme de cellules contigues dont le nombre peut varier et je bloque pour le moment. J'ai deja réalisé cette macro d'arbitrage et c'est uniquement pour le prélèvement des frais de gestion et le recalcul de la valeur des contrats que je fais appel a vous. En espérant (bien que j'en doute) avoir été assez clair, je vous remercie par avance de votre aide.
|
|
mercredi 30 août 2006 à 13:53:37 |
Re : macro excel pour suivi de clients en portefeuilles
|
mercredi 30 août 2006 à 23:44:51 |
Re : macro excel pour suivi de clients en portefeuilles

jfloyd
|
Oui alors d'un point de vue programmation :
Sur une ligne j'ai les données d'un client sur les 7 premieres colonnes, puis pour la 8ème colonne je passe a la ligne et j'ai un certain nombre de valeurs dans les colonnes suivantes. Je vais ensuite encore a la ligne en fonction du nombre d'investissements différents.
En gros chaque ligne correspond à un investissement qui a une valeur, et je cherche a faire la somme de ces investissements. La valeur de chaque investissement est en colonne 12 de chaque ligne (a part la 1ere ligne ou la cellule est vide puisque je passe a la ligne pour chaque investissement).
Chaque client est séparé du suivant par un saut de ligne.
Le probleme comme je le disais c'est que le nombre de lignes a sommer diffère pour chaque client. Par exemple le 1er client peut avoir 3 investissements, le 2nd zéro, le 3ème 1, etc... Et autre difficulté le nombre de ces investissements peut varier, c'est a dire que le 1er client avec 3 investissements peut plus tard en avoir 5 par exemple.
Je cherche donc a faire une macro qui pour chaque client parvienne à repérer les lignes d'investissements de chaque client (ex: client 1 : 5 investissements). Puis diviser la colonne 10 de chaque ligne d'investissement par une variable ( la colonne 10 correspond a un nombre de parts, si la valeur d'une cellule de cette colonne change, la colonne 12 renvoyant la valeur de l'investissement s'ajuste). Ensuite la macro doit faire la somme des investissements de chaque client, soit la somme des valeurs de la colonne 12 (dans l'exemple du client 1, faire la somme de la valeur des 5 investissements) Enfin une derniere somme a faire : la somme du résultat précédent et de la valeur de la cellule (ligne du client, colonne 6) à reporter en cellule (ligne du client, colonne 4)
Cette opération doit ensuite etre répétée pour chaque client.
Schéma simplifié de la feuille excel: Nom client1 / Agence / Valeur contrat /Valeur fonds euro Investissement 1: valeur Investissement 2 : valeur Investissement 3 : valeur
Nom client2/Agence / Valeur contrat/ Valeur fonds euro Investissement1: valeur
Nom client 3 .....
La difficulté est que je n'arrive pas à programmer quelque chose qui puisse s'adapter au nombre d'investissements variables. En gros je n'arrive pas a programmer la somme des investissements et à l'insérer dans une boucle While pour la répétition pour chaque client.
Je suis débutant en VB, je n'ai peut etre pas bien envisagé le problème, donc je pense que le bout de programme que j'ai écrit pour l'instant ne vous servirait a rien.
J'espere cette fois avoir été clair, désolé pour la longueur, et merci d'avance pour l'aide, le code, les idées ... que vous pourrez m'apporter.
|
|
jeudi 31 août 2006 à 09:00:48 |
Re : macro excel pour suivi de clients en portefeuilles

Tuning Max
|
Question : Est ce que pour chaque ligne d'investissement, le nom du client est repris? Dans tout les cas j'aime autant te prévenir que le traitement de ta fonction va être longt! Peut tu déjà nous écrire le bout de programme que tu as, histoire de mieux nous rendre compte? 
|
|
jeudi 31 août 2006 à 11:28:30 |
Re : macro excel pour suivi de clients en portefeuilles

Dolphin Boy
|
Salut, si le nom des clients n'est pas repris à chaque ligne alors voici un bout de code qui te permettra de compter le nombre d'investissement de chacun :
Sub Macro1() Dim i As Integer Dim nb_Investissements As Integer For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row If Cells(i, 1) <> "" Then 's'il y a un nom de client nb_Investissements = 0 Else If Cells(i, 12) <> "" Then 's'il y a un investissement on compte nb_Investissements = nb_Investissements + 1 Else MsgBox nb_Investissements 'on affiche le nb d'investissements End If End If Next MsgBox nb_Investissements 'ça c'est pour le dernier client de la liste End Sub
C'est juste un début. A partir de là, tu pourras faire tes calculs, sommes et autres.
|
|
jeudi 31 août 2006 à 12:19:57 |
Re : macro excel pour suivi de clients en portefeuilles

jfloyd
|
Merci pour vos réponses.
Quelques précisions :
Les investissements ne sont pas marqués sur la meme ligne que le nom du client
Ainsi par exemple j'ai un client dont le nom et la valeur du contrat sont en ligne i. Ce client a 3 investissements, le 1er investissement est en ligne i+1, le 2ème en i+2 et le 3ème en i+3.
Le nom du client suivant, dans ce cas la, est en ligne i+5 (3lignes pour les investissements plus un saut de ligne).
Dolphin boy dans ton code je ne vois pas comment je pourrais intégrer la somme investissements pour chaque client, de manière a ce qu'elle soit traitée dans la boucle While.
Voici un bout du programme que j'avais :
Dim S as variant
For each S in range ("A2:A600") 'je prends 600 au hasard parce que je n'arrivais pas à prendre le dernier client
If len(S)<>0 then S.select i=activecell.row activecell.offset(1,11).select if activecell.offset(1,0).value<>0 then range(activecell, activecell.end(xldown)).select
Cells(i,4).value = application.worksheetfunction.sum(selection) + cells (i,6).value
Next
|
|
jeudi 31 août 2006 à 16:33:45 |
Re : macro excel pour suivi de clients en portefeuilles

Dolphin Boy
|
Je crois que j'ai bien compris où se trouvent inscrits les investissements, c'est pourquoi mon bout de code ne tient pas compte de la ligne où se trouve le nom du client pour le comptage. Pour le calcul du total des investissements de chaque client, juste 2 ou 3 lignes à rajouter (voir bout de code suivant).
Sub Macro1() Dim i As Integer Dim nb_Investissements As Integer Dim montant_Investissements as double For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row If Cells(i, 1) <> "" Then 's'il y a un nom de client nb_Investissements = 0 montant_Investissements = 0 Else If Cells(i, 12) <> "" Then 's'il y a un investissement on compte nb_Investissements = nb_Investissements + 1 montant_Investissements = montant_Investissements + Cells(i, 12).Value Else MsgBox nb_Investissements & " investissements pour un montant de : " & montant_Investissements " End If End If Next MsgBox nb_Investissements & " investissements pour un montant de : " & montant_Investissements " End Sub
|
|
vendredi 1 septembre 2006 à 09:29:10 |
Re : macro excel pour suivi de clients en portefeuilles

jfloyd
|
Merci Dolphin Boy
J'ai testé ton code mais j'ai encore un petit problème.
J'ai rajouté entre les 2 end if le bout de code suivant (pour calculer la valeur totale du contrat) : cells(i,4).value = montant_investissements + cells (i,6).value
J'ai également modifié un petit quelque chose : montant_Investissements = montant_Investissements + Cells(i, 12).Value en : montant_Investissements = montant_Investissements + Cells(i+1, 12).Value
Le problème est que l'éxécution de la macro ne prend en compte que le premier investissement pour chaque client lors du calcul de la valeur totale du contrat. Si un client a 3 investissements il ignore donc la valeur des investissements 2 et 3.
Ne faudrait-il pas faire une boucle FOR pour calculer la somme de ces investissements?
Voila, si vous voulez des précisions, n'hésitez pas.
Et si vous comprenez mon problème, merci de votre aide.
|
|
samedi 2 septembre 2006 à 16:14:04 |
Re : macro excel pour suivi de clients en portefeuilles

Dolphin Boy
|
Excuse-moi, je n'ai pas pu te répondre plus tôt.
Si je comprend bien, la cellule cells(i,4) doit contenir le montant total des investissements avec i = la ligne où se trouve le nom du client ?
Dans ce cas :
Sub Macro1() Dim i As Integer Dim nb_Investissements As Integer Dim montant_Investissements as double Dim ligne_Infos_Client As Integer For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row If Cells(i, 1) <> "" Then 's'il y a un nom de client nb_Investissements = 0 montant_Investissements = 0 ligne_Infos_Client = i Else If Cells(i, 12) <> "" Then 's'il y a un investissement on compte nb_Investissements = nb_Investissements + 1 montant_Investissements = montant_Investissements + Cells(i, 12).Value Else Cells(ligne_Infos_Client, 4).Value = montant_Investissements End If End If Next Cells(ligne_Infos_Client, 4).Value = montant_Investissements End Sub
Si le nombre d'investissements ne t'es pas utile, tu peux supprimer les lignes où il y a nb_Investissements.
|
|
samedi 9 septembre 2006 à 00:59:35 |
Re : macro excel pour suivi de clients en portefeuilles

jfloyd
|
Merci Dolphin Boy, excuse moi de pas avoir répondu plus tôt mais j'ai pas trop eu le temps de m'occuper de mon programme cette semaine.
J'ai compris ton raisonnement sur mon problème et je vais tester ton code demain pour etre sur que tout fonctionne bien.
Merci encore.
|
|
Cette discussion est classée dans : ligne, action, client, fonds, euro
Répondre à ce message
Sujets en rapport avec ce message
Récupération de ligne dans une ListBox [ par pjouy ]
Bonjour à tous.Le problème est un peu compliqué, d'ailleurs si vous avez une solution plus simple n'hésitez pas à me la suggérer !Donc, j'ai une ListB
Ranger des données dans un fichier [ par kalliste05 ]
Salut,je suis débutant en VB et je n'arrive pas à ranger les données saisies dans une textbox (nom, prénom, ville, code_post) etc dans un fichier.txt
Action sur une ligne d'une datagrid [ par visualresine ]
Bonjour, Je charge dans une datagrid certaines données à l'aide d'un dataset et d'une requete SQL. Je voudrais ensuite effectuer une action provoqué
Plusieurs boutons pour même action [ par sopra178 ]
bonjour,Dans un document Word, j'ai un tableau avec près de 200 lignes et à chaque ligne je veux mettre un bouton du style "ligne à supprimer".Le prob
datareport [ par phebus709 ]
Bonjour le forum, J'essaye de faire une application de facturation (en VB6 et utilisation dune base access) et je suis confronté à un probleme concern
Problème lors de l'ajout [ par kahllac ]
J'ai un message d'erreur lors de l'ajout qui me dit "Foreigne key constrainte Client_Commande(c'est ma 2e table jointe) requires the child key value 8
problème dans le datagridview [ par asprog ]
bonjour tout le monde,dans une petite application que j'ai crée avec vb.net 2005 une datagridview qui est lié à une source de donnée.pour ajouter une
Problème exportation Access -> Excel [ par candoo666 ]
Tout d'abord, bonjour à tous.J'ai un soucis de tranfert de données depuis une base Access vers Excel.(J'ai recherché un peu partout sur le net et pass
lien de cellule vers d'autre fichier excel [ par lesims1000 ]
Bonjour, J'ai créer un tableau de gestion de clientèle, j'ai 2 fichiers: un fichier avec un tableau sous forme de semaine et dans chaque semaine y fig
action d'un boutton apres la selection d'un ligne dans un datagrid [ par chmichem ]
[b][size=200]bonjour j'ai un datagrid contient un table de données je veux modifier un ligne dans la base de données après leur sélection et un clique
Livres en rapport
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|