sélection par catégories et par fonds

albert

XLDnaute Occasionnel
bonsoir lebarbo, le forum,
pour créer une routine de sélection des pages dans



il faut travailler sur les adresses.

ça n'a pas l'air simple :

Actions amérique du nord - catégories
http://www.morningstar.fr/catqt/ret...%3B%7CSortBy%3DCategoryName%7CSortOrder%3DASC

fonds
http://www.morningstar.fr/catqt/ret...%3B%7CSortBy%3DCategoryName%7CSortOrder%3DASC

Actions Euroland - catégories
http://www.morningstar.fr/benchmark...s=Actions Amérique du Nord Moy./Petites Cap.;

fonds
http://www.morningstar.fr/catqt/ret...%3B%7CSortBy%3DCategoryName%7CSortOrder%3DASC

[file name=morningstarRendement.zip size=13426]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/morningstarRendement.zip[/file]
 

Pièces jointes

  • morningstarRendement.zip
    13.1 KB · Affichages: 102

Hellboy

XLDnaute Accro
Bonjour lebardo

Je n'ai pas été beaucoup chez moi en fin de semaine, alors pas eu beaucoup de temps pour ta demande.

J'aimerais de proposé une idée pour le trie et le filtrage des données. C'est que dans Excel, tout ce que tu demande, comme outils de traitement de données est déjà présent dans Excel. Le filtre des données sur place et le trie des données. Alors, pourquoi refaire tout ça, quand en fait tout est déja là. Il n'est pas plus difficile pour l'utilisateur de passer par le menu pour le Trie que de passer par une boite de dialogue. Même chose pour le Filtre des données, qui se fait directement sur les feuilles Excel. C'est quand même long faire tout ça en programmation, pour peu ou pas d'avantage.

Enfin, dis moi ce que tu en pense.

a+
 

lebarbo

XLDnaute Occasionnel
Bonjour Hellboy,

Pour ton idée tu n'as pas tort, je vais t'expliquer comment je le vois ayant eu une discussion avec le boss après ton message pour que tout soit clair, précis et net.
Pour ma part, je vais d'abord t'expliquer pourquoi je comptais automatiser ces tries et filtres. Donc je comptais automatiser les tries et les filtres pour que les conseillers trouvent facilement et puissent utiliser presque ludiquement la chose. Tu dois savoir mieux que moi que dès que tu mets à dispositions des outils il faut que ceux ci soit facilement utilisables autant par le pro en Excel que par le premier débutant qui ne l'a jamais utilisé. De plus il me semble que les trie peuvent être lourd a utiliser (exemple avec les 900 fonds dans la feuille PEA).
Donc comment je compte procéder :
- Pour le trie, je vais laisser ta boite de dialogue avec le croissant et décroissant : ça me plait bien.
- Pour les filtres automatiques, je compte les mettre de suite dans Excel et ne prendre en filtre que la colonne Catégorie, Skandia et PEA.

Donc pour l'instant tout va bien ;) mais non en fait :pinch:
je t'explique :
1) j'ai l'impression qu'on ne peut pas faire un filtre automatique en selectionnant des colonnes qui ne se suivent pas : c'est le cas pour ce que je veux faire : Catégorie, Skandia et PEA
2)je t'avais parlé également du formatage de couleur qui ne marche pas bien...je n'ai pas réussi à m'en arranger pour ta boite de dialogue trie. (Pour les filtres c'est pas grave on fera sans, ça doit être quasiment impossible à mettre en place donc on laisse tomber.)

Voilà dis moi si tu as des idées.
bye

Message édité par: lebarbo, à: 25/07/2005 17:39
 

Hellboy

XLDnaute Accro
re lebardo

1) Il est vrai que l'on ne peu appliquer le Filtre automatique sur des colonnes non contigues. Il faut que tu l'applique sur l'ensemble des colonnes. Par contre ce n'est possiblement pas le cas pour le filtre élaboré. Sauf que je ne suis pas a l'aise avec et encore moins pour le programmer.

2) Pour les couleurs, il me semble que je n'ai pas de trouble chez moi. J'ai peux être changer quelque chose et je ne m'en souviens plus, alors je te renvoie le module qui contient la boite de dialogue avec son code bien sur. Tu n'as qu'a supprimer celui que tu as et importer le nouveau. Fait le ds cet ordre aussi.

Pour la programmation des filtres automatique ça se fait, mais c'est beaucoup de temps. Ce qui arrive, je crois que l'utilisateur peux ou voudra surement utiliser plus d'un filtre a la fois. Donc ceci nécessite autant de liste déroulante que de Filtre souhaité. Ensuite, il faut insérer tout les éléments présent sans doublon pour chacun des Filtres. Il est possible par la suite, de passer en revue chacun des Filtres que l'utilisateur a demandé et d'appliquer l'éléments de filtrage pour chaque. C'est sur que une fois la procédure(code) du filtre fait pour un, il est bon pour les autres. Mais il s'agit quand même de le faire.

a+



Tout ce fais, mais c'est une question de temps.

[file name=usfTrie.zip size=1294]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/usfTrie.zip[/file]
 

Pièces jointes

  • usfTrie.zip
    1.3 KB · Affichages: 48

lebarbo

XLDnaute Occasionnel
Bonjour Hellboy,

1) je vais voir par moi même si il y a des solutions notamment avec le filtre élaboré sinon si le boss veux absolument un filtre par catégorie je m'arrangerais pour que la colonne catégorie se suive avec la colonne Skandia et PEA. Pas de souci...

2)J'ai téléchargé l'usftrie et il bug quand je l'importe (après bien sur avoir supprimé le précédent) j'ai essayé de l'ouvrir dans un classeur vierge mais bug aussi. Je l'ai donc ouvert avec un traitement de texte pour voir ton code et après j'ai fait un copier-coller dans usftrie pour remplacer l'ancien code par le tiens. Je te confirme qu'il y avait des changements mais malheureusement ça ne marche toujours pas.
Pour voir si le tiens marche est ce que tu peux faire un trie par catégorie, si la couleur marche c'est byzarre. :eek:


Merci...
a+
 

lebarbo

XLDnaute Occasionnel
re Hellboy,

Pour le premier problème je me suis débrouillé avec un filtre automatique. J'ai également fait la moyenne pour la feuille catégorie (%action...), et créée la feuille Marchés et Recherche...rien de bien compliqué par rapport à ceux que tu fais en vba ;)

(On va bientôt voir la fin :woohoo: )

Si tu as le temps pour y jeter un coup d'oeil
Ce lien n'existe plus

PS : pour l'instant il n'y a qu'un seul bouton trie, c'est en attendant de voir si il y a une solution pour résoudre le léger problème de couleur de lignes. D'ailleurs si tu veux tester avec ce fichier n'hésite pas ;)

Merci...
++

rePS : il passe même sur cjoint en rar lol


Message édité par: lebarbo, à: 26/07/2005 17:39
 

Hellboy

XLDnaute Accro
Bonsoir lebardo

C'est vrai qu'en rar, c'est plus petit.

J'ai corrigé pour de bon, le bug avec les couleur de lignes.

J'ai vue que tu n'avais pas réussi a inséser le fichier de la nouvelle forme de trie que je t'avais envoyé. Mias, c'est pas grave, je n'avais pas été très clair en expliquant comment le faire. J'ai manquer de temsp pour élaborer.

Cette fois-ci, je te donne le fichier que tu m,as fournis lors de ton précédant post, avec toutes les modifs que j'ai faite qui se rapporte sur le trie et le formatage de ligne.

Le seul trouble, et pas un petit, serait de pouvoir changer les lignes de couleurs losque l'on filtre des données. Mais pas facile a faire. Il faudrait faire une macro évènementciel basé sur le filtreautomatique qui change. Ça ce n'est pas de mon calibre. Mais je sais ou je peux demander. Peut-être sur ce site, mais je doute.

Ensuite, juste pour te transmettre une pensée qui me tracasse depuis un moment, et que j'oublie toujours de te le dire.

Je suis concerné par le fais que le fichier n'as pas de moyen de renouveler la liste des fonds et autres.

C'est tout, et c,est l'heure du dodo.

http://cjoint.com/?hBd4JmIIQX

a+

p.s. Même si cela achève, j'espère que nous ne deviendrons pas étrangé pour autant ! :(

Je te garde ds mes contacts de MSN ;)
 

lebarbo

XLDnaute Occasionnel
Bonjour Hellboy,

Beautiful :woohoo:
le blocage des listes déroulantes en fonction du nombre de trie demandé c'est impressionnant.
Sinon il y avait un petit problème pour le trie, ça commençait à la ligne 9 tout le temps donc ça laissait un fonds en haut pour toutes les autres feuilles et pour la feuille 'Catégories (% act. oblig. cash)' c'était bon puisqu'il y a la moyenne.
Je me suis inspiré de ce que tu avais fait au niveau du code et ça marche et ça marche :

If ActiveSheet.Name = 'Catégories (% act. oblig. cash)' Then
intColonneDepart = 3
Else
intColonneDepart = 2
End If

If ActiveSheet.Name = 'Catégories (% act. oblig. cash)' Then
intLigneDepart = 8
Else
intLigneDepart = 7
End If


If rngKey1 <> Empty And rngKey2 <> Empty And rngKey3 <> Empty Then
Range(Cells(intLigneDepart, intColonneDepart), Cells(Cells(65536, intColonneDepart).End(xlUp).Row, Cells(7, 255).End(xlToLeft).Column)).Sort _
Key1:=Range(rngKey1), Order1:=consOrder1, _
Key2:=Range(rngKey2), Order2:=consOrder2, _
Key3:=Range(rngKey3), Order3:=consOrder3, _
OrderCustom:=1, Header:=xlYes, MatchCase:=True, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
ElseIf rngKey1 <> Empty And rngKey2 <> Empty Then
Range(Cells(intLigneDepart, intColonneDepart), Cells(Cells(65536, intColonneDepart).End(xlUp).Row, Cells(7, 255).End(xlToLeft).Column)).Sort _
Key1:=Range(rngKey1), Order1:=consOrder1, _
Key2:=Range(rngKey2), Order2:=consOrder2, _
OrderCustom:=1, Header:=xlYes, MatchCase:=True, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
ElseIf rngKey1 <> Empty Then
Range(Cells(intLigneDepart, intColonneDepart), Cells(Cells(65536, intColonneDepart).End(xlUp).Row, Cells(7, 255).End(xlToLeft).Column)).Sort _
Key1:=Range(rngKey1), Order1:=consOrder1, _
OrderCustom:=1, Header:=xlYes, MatchCase:=True, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End If

Pour le filtre de données je suis d'accord avec toi mais ça devient en effet très chaud voir indigeste :sick: lol

et sinon pour le renouvellement des fonds on est d'accord aussi c'est pour ça que je t'avais demandé dans un post précédent (qui commence à dater) si il y avait moyen d'acquérir dans Excel une liste déroulante. Tu m'avais dit que tu savais pas comment faire et c'est vrai que ça doit être très très très chaud :eek:
J'avais pensé à un truc mais ça doit être extrêmement difficile c'était d'acquérir par un filtre le nom et les id des fonds en passant par le code html de la page de Morningstar où il y a la liste déroulante...pas facileeee :eek:

T'inquiète pas je ne vais pas couper les ponts si tu vas toujours sur msn :) ...mais c'est sur que sur le forum j'aurais moins l'habitude d'y aller par la force des choses.

Merci
a+
 

Hellboy

XLDnaute Accro
Bonjour Sylvain

Super ton adaptation de code ! Félicitation !

Pour ce qui est de la liste des Fonds, si tu pouvais me trouver une pages qui fait la liste des fond avec le Numéro d'identification du fonds, mais autrements, je ne sais comment faire ! :eek:

a+
 

lebarbo

XLDnaute Occasionnel
aaaarrarrrrrrrrrrr :sick: :sick:


Désolé :eek: je m'enrage tout seul avec la macro trie... Tu m'avais félicité mais c'était un peu trop tot. Je t'explique avec le fichier ci-dessous pour que ce soit clair :
1) quand par exemple dans la feuille 'sociétés' donc ici avec la société oddo tu fais un trie par 1a% (je l'ai déjà fait dans le fichier que j'ai mis ci-dessous) il y a au niveau des couleurs deux lignes identiques en violet la ligne 8 et 9. ça c'est pas trop grave...
2)maintenant fait une selection par catégorie : Actions Euroland Grandes Cap. puis un trie par 1s% en decr (par exemple)...là c'est le drame il y a des bordures noir partout !

------------------------------
Sinon j'ai besoin de tes compétences en vba pour me dire un petit truc...je t'explique quand on fait un filtre avec par exemple catégorie et qu'on télécharge juste après une autre société le téléchargement met des fonds de l'ancienne société et de la nouvelle...en gros c'est l'anarchie :evil: lol donc je viens de commencer à faire un code dans la macro forme c'est celui là :
Public Sub Forme()
UserForm1.Show
ActiveSheet.ShowAllData
End Sub
en gros dès que userform1 est ouvert ça réaffiche tout au niveau des filtres donc impeccable plus de problème sauf que logiquement si il n'y a pas eu de filtrage ça plante. arffff...


Merci d'avance
bye

le fichier :
http://cjoint.com/?hBsBLuYkC0
 

Hellboy

XLDnaute Accro
re

Pour la partie mes compétence concernant le Filtre auto.

Voici le code que tu dois utiliser.
Private Sub ComboBox1_Change()
Dim intNbFiltre As Integer, intNBFiltreCount As Integer
&nbsp; &nbsp;
With UserForm1
&nbsp; &nbsp; &nbsp; &nbsp;
Select Case .ComboBox1.Value
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Sociétés'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .ListBox1.RowSource = 'Liste!A1:B' & Worksheets('Liste').Cells(65536, 1).End(xlUp).Row
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Height = 277.5
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Catégories (% act. oblig. cash)'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .ListBox1.RowSource = 'Liste!E1:F' & Worksheets('Liste').Cells(65536, 5).End(xlUp).Row
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Height = 277.5
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Catégories'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .ListBox1.RowSource = 'Liste!E1:F' & Worksheets('Liste').Cells(65536, 5).End(xlUp).Row
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Height = 277.5
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Promoteurs'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .ListBox1.RowSource = 'Liste!C1:D' & Worksheets('Liste').Cells(65536, 3).End(xlUp).Row
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Height = 277.5
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'PEA', 'Skandia'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .ListBox1.RowSource = ''
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Height = 115
&nbsp; &nbsp; &nbsp;
End Select
&nbsp; &nbsp; &nbsp; Sheets(.ComboBox1.Value).Select
&nbsp; &nbsp; &nbsp;
Select Case .ComboBox1.Value
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Sociétés', 'Promoteurs'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; intNBFiltreCount = 3
&nbsp; &nbsp; &nbsp;
Case Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; intNBFiltreCount = 2
&nbsp; &nbsp; &nbsp;
End Select
&nbsp; &nbsp; &nbsp;
For intNbFiltre = 1 To intNBFiltreCount
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Selection.AutoFilter Field:=intNbFiltre
&nbsp; &nbsp; &nbsp;
Next intNbFiltre
&nbsp; &nbsp;
End With
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End Sub


Tu remplace l'Ancien par celuic-i.

Pour le reste. je regarde plustard si j'ai du temps.

a+
 

lebarbo

XLDnaute Occasionnel
re

décidemment tu es très bon et en plus rapide
clap clap clap !!!! c'est un peu la classe B) lol

sinon pour la liste déroulante pour le nom des fonds et les id laisse tomber, je ne vais pas avoir la solution et en plus manque de temps :pinch: t'inquiète pas ils se contenteront largement de ce qu'on a fait.

et sinon pour le reste je vais m'y mettre aussi pour voir ce qui merde au niveau du code...on s'est jamais peut-être que je vais y arriver tout seul lol

Merci encore
++

PS : je trouve plus notre post sur le forum excel pour voir à combien on est vis à vis du nombre de lectures c'est étrange...

Message édité par: lebarbo, à: 27/07/2005 18:46
 

Hellboy

XLDnaute Accro
re Sylvain

C'est presque l'heure du dodo ! :eek:
(Plein de fautes, trop fatigué pour corrigé, désolé :eek: )

Bon, essaie ce fichier. J'ai travailler sur les couleur, et j'y ai insérer le bout de code de cet après-midi.

Je tien a repréciser, que ce n'est pas parfait pour les couleur. En ce sens que le formatage des couleur est appeler que par l'action du trie des données. Je ne sais pas si tu comprend ce que je veux dire ?

Apès essaie, du fichier que je t'en voit, si tu as le temps, il faut encore :eek: que tu me résume ce qui te tracasse pour que je vois ce que je peux faire. J'ai encore perdi le fil.

Bon et bien A+

Le fichier: http://cjoint.com/?hCfqpYcPTK

Message édité par: Hellboy, à: 28/07/2005 04:51
 

lebarbo

XLDnaute Occasionnel
Bonjour Hellboy,

alors bien dormis ;)

je viens de regarder ton fichier avec les changements de code pour la couleur dans OPCVM

Je tien a repréciser, que ce n'est pas parfait pour les couleur. En ce sens que le formatage des
couleur est appeler que par l'action du trie des données. Je ne sais pas si tu comprend ce que je
veux dire ?

Vis à vis de ça tu parles de l'action Call je suppose ? Je l'avais vu en effet. ;)

Sinon pour ce qui me tracassais (oui en effet ça ne me tracasse plus...) je vais te rééxpliquer le problème en essayant d'être plus clair et en utilisant le vocabulaire approprié :
Va dans la feuille Société, utilise un filtre (Catégorie ou PEA par exemple) pour réduire le nombre de fonds (il faut impérativement réduire cette liste pour constater le problème) et ensuite tu fais un trie. Tu vas te rendre compte que les fonds sont encadrés n'importe comment.
Pour résoudre le problème j'ai fait au plus simple : j'ai supprimé le bout de code suivant :

'Création du format des bordures de lignes
If IntLigneFin <> 8 Then
With Range(Cells(8, intColonneDépart), Cells(IntLigneFin, intColonneFin))
With .Borders '(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
.Borders(xlInsideVertical).LineStyle = xlNone
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
End With
End If

On n'a plus l'encadré tout noir mais ce n'est pas très grave, la feuille est belle aussi sans bordure et en plus on a plus le problème ;)

Bye
 

lebarbo

XLDnaute Occasionnel
arfff je viens de voir un truc...

ça concerne le code :
Private Sub ComboBox1_Change()
Dim intNbFiltre As Integer, intNBFiltreCount As Integer
With UserForm1
Select Case .ComboBox1.Value
Case 'Sociétés'
.ListBox1.RowSource =
\\'Liste!A1:B\\' & Worksheets(\\'Liste\\').Cells(65536, 1).End(xlUp).Row
.Height = 277.5
Case 'Catégories (% act. oblig. cash)'
.ListBox1.RowSource =
\\'Liste!E1:F\\' & Worksheets(\\'Liste\\').Cells(65536, 5).End(xlUp).Row
.Height = 277.5
Case 'Catégories'
.ListBox1.RowSource =
\\'Liste!E1:F\\' & Worksheets(\\'Liste\\').Cells(65536, 5).End(xlUp).Row
.Height = 277.5
Case 'Promoteurs'
.ListBox1.RowSource =
\\'Liste!C1:D\\' & Worksheets(\\'Liste\\').Cells(65536, 3).End(xlUp).Row
.Height = 277.5
Case 'PEA', 'Skandia'
.ListBox1.RowSource = ''
.Height = 115
End Select
Sheets(.ComboBox1.Value).Select
Select Case .ComboBox1.Value
Case 'Sociétés', 'Promoteurs'
intNBFiltreCount = 3
Case Else
intNBFiltreCount = 2
End Select
For intNbFiltre = 1 To intNBFiltreCount
Selection.AutoFilter Field:=intNbFiltre
Next intNbFiltre
End With

End Sub

je suis désolé vu que je ne comprenais pas le code au début (d'ailleurs je le comprends qu'à moitié encore) j'ai pas pu vérifier si c'était bon :eek: c'est en testant que j'ai vu.
Le problème est le suivant :
Cela ne concerne que les feuilles qui ont le filtre catégorie c'est à dire : 'Sociétés', 'Promoteurs', 'Skandia' et 'PEA'
Si on filtre uniquement par catégorie dans ces feuilles ça marche mais si on filtre par PEA ou Skandia le code ne marche plus c'est à dire que l'orsqu'on ouvre userforme1 tous les fonds n'apparaissent pas.

Pour reprendre mon explication et pour aider dans la compréhension de l'erreur dans le code : si on filtre avec PEA ou Skandia dans les feuilles qui n'ont pas le filtre catégorie ça marche exemple avec : 'Catégorie' et 'Catégories (% act. oblig. cash)'

J'ai essayé d'adapter ton code mais pour l'instant je ne suis arrivé à rien c'est pour ça que je fais appelle à toi. Je vais essayé encore...on verra.


a+

Message édité par: lebarbo, à: 28/07/2005 10:36

Message édité par: lebarbo, à: 28/07/2005 15:16
 

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof