|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : macro excel pour suivi de clients en portefeuilles [ Divers / General ] (jfloyd)
Informations & options pour cette discussion
|
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é 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 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
Selectionner une ligne dans une Listbox VB6 [ par Rebeb ]
Bonjour,Etant un débutant dans la programmation, je n'arrive pas à sélectionner une ligne dans une listbox en VB6 sans avoir recours a la souris.Je vo
Importer dans un userform [ par rkdourga4 ]
J'ai un fichier excel où il y a des infos sur les clients.J'ai un userform. Quand je saisis le numéro du client dans le champ texte du userform et qu
Client ____ x ____ Serveur [ par solidx33 ]
je n'arrive pas a comm1iquer mon clnt avec mon srvr jé fé le code suivant :Private Sub cmdConnect_Click()On Error Resume NextWinsock1.Clos
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|