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 suis désolé pour le pb que tu rencontre. Le stop servait pour moi lors du débogage du trouble que j'ai renconté. Tu n'as qu'a enlever ou mettre en commentaire cette ligne de commande. Le STOP est pratique lorsque tu es rendu a débarquer du mode de débug de 'pas a pas' et que tu vise l'arret du déroulement de ta macro a un endroit précis dans ton code.

A+ l'ami B)
 

albert

XLDnaute Occasionnel
Bonsoir Hellboy, lebarbo, le forum,
J’ai eu quelques ennuis avec mon pc , qui m’ont fait perdre beaucoup de temps ; un vilain trojan m’a finalement obligé à faire une réinstallation complète.

Pour le projet en cours, je ne peux plus mobiliser beaucoup de temps, je suis l’avancement des travaux, mais je ne peux plus être d’une grande utilité.

Ce soir, je suis allé voir sur le chat si vous y étiez… ni l’un ,ni l’autre…

La version 3.3.2 est une petite merveille.
Juste une petite remarque, il faut supprimer les moyennes dans la ligne jaune, parce qu’elles ne correspondent pas à l’ensemble des lignes téléchargées.

Hellboy , J’aime bien ta trouvaille Application.StatusBar, je ne connaissais pas
Application.DisplayStatusBar = True
Application.StatusBar = 'Download de la page Web ' & I & ' de ' & nbpage

cordialement
albert
à +
 

lebarbo

XLDnaute Occasionnel
Bonjour albert, hellboy, le forum...

c'est bon je suis de retour :)
l'opréation c'est bien passé je suis encore un peu dans le coletar mais je peux reprendre le projet tout doucement là où il en était. En effet mais journée sont rytmés par dodo, mangé, dodo, mangé... donc si je récupère bien je peux commencer à y insérer du boulot :)
Faites moi signe si vous êtes tojours là.

Bye
 

lebarbo

XLDnaute Occasionnel
Bonjour albert, hellboy, le forum...

je suis de retour au taf et je reprends plus serieusement notre projet. Si Albert tu es toujours là j'aurais besoin de tes conseils pour le adapter ton code de macro recherche. Je remets ici ton fichier et ta macro :

Sub cherche()
On Error Resume Next
Sheets('OPCVM expositions').Select
'----------préparation-------------
Range('E2', Range('E2').End(xlDown)).Select
Selection.ClearContents
Range('E2').Select
'-----------
For i = 2 To Range('B2').End(xlDown).Row
Rech = Cells(i, 2).Value
With Worksheets('Fonds Skandia').Range('A1:A130')
sico = .Find(What:=Rech).Value
Cells(i, 5).Value = sico
If Cells(i, 5).Value <> Cells(i, 2).Value Then
Cells(i, 5) = 0
End If
End With
Next i


End Sub

je voudrais donc l'adapter au code de hellboy avec la feuille sociétés et Skandia.

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

Pièces jointes

  • cherchcode.zip
    13 KB · Affichages: 22

lebarbo

XLDnaute Occasionnel
et voici le fichier d'hellboy

Sinon je vais envoyer un mail à morningstar pour leur dire que leur site fonctionne mal.
Exemple:
dans la catégorie 'Actions Euroland Grandes Cap.' ils annoncent 1714 fonds et seulement 300 apparaissent (10 pages exactement) ça s'arrête à la lettre E donc à voir...
http://www.morningstar.fr/benchmark...stletter=&pageNo=10&GraphCid=&GraphFundNames= [file name=presentation3_20050606134055.zip size=34535]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/presentation3_20050606134055.zip[/file]

Message édité par: lebarbo, à: 06/06/2005 13:40
 

Pièces jointes

  • presentation3_20050606134055.zip
    33.7 KB · Affichages: 25

albert

XLDnaute Occasionnel
Bonjour Hellboy, lebardo, le forum,

Je regarde l'évolution du travail, je ne suis pas toujours diponible, mais un coup d’main par ci, par là, c’est possible, surtout si tu mets le mains dans l’cambouis (vba), ça fait gagner du temps
:)

&&&&&&&&&&&&


Fonds Skandia donne la liste dans laquelle il faut chercher

i= 2 To Range('B2').End(xlDown).Row

OPCVM expositions donne les noms à chercher et le code insrit les noms trouvés dans la colonne E s’il n’a rien trouvé dans la liste Fonds Skandia, il inscrit 0 dans OPCVM expositions

Sub cherche()
On Error Resume Next
Sheets('OPCVM expositions').Select
'----------préparation-------------
Range('E2', Range('E2').End(xlDown)).Select
Selection.ClearContents
Range('E2').Select
'-----------
For i = 2 To Range('B2').End(xlDown).Row 'liste à trouver pour chaque ligne
Rech = Cells(i, 2).Value
With Worksheets('Fonds Skandia').Range('A2:A216') 'liste dans laquelle il faut chercher
sico = .Find(What:=Rech).Value 'sico est le nom cherché
Cells(i, 5).Value = sico 's'il est trouvé, il est inscrit en colonne E Sheets('OPCVM expositions')
If Cells(i, 5).Value <> Cells(i, 2).Value Then 's'il n'y a pas correspondance B et E
Cells(i, 5) = 0 'inscription =0
End If
End With
Next i 'recommencer pour la ligne suivante


End Sub

je ne sais pas ce que tu veux en faire dans 'présentation3', mais j'espère avoir donné des explications suffisantes pour que tu puisses t'en servir

albert
 

Hellboy

XLDnaute Accro
Bonjour a vous deux et le forum

Je suis de retour de mes travaux. Mais n'empêche que le temps ne semble jamais se multiplier pour autant. Je voulais commencer a me remettre au boulot, mais le site de Morningstar fait encore des sinnes. Je n'arrive pas a m'y connecter. Enfin, je vais surement avoir plus de temps ce WE, alors d'ici là bonne semaine.
 

lebarbo

XLDnaute Occasionnel
Bonjour à vous deux,
Bon j'ai essayé mais je me suis encore cassé les dents...
j'ai adapté le code comme ça :


Sub cherche()
On Error Resume Next
Sheets('Sociétés').Select
'----------préparation-------------
Range('V9', Range('V9').End(xlDown)).Select
Selection.ClearContents
Range('V9').Select
'-----------
For i = 2 To Range('B9').End(xlDown).Row
Rech = Cells(i, 2).Value
With Worksheets('Skandia').Range('B9:B130')
sico = .Find(What:=Rech).Value
Cells(i, 5).Value = sico
If Cells(i, 5).Value <> Cells(i, 2).Value Then
Cells(i, 5) = 0
End If
End With
Next i


End Sub


je ne comprends pas à quoi sert les i= et le nom sico faut le mettre quelque part ?

pour comprendre j'ai fait le fichier presentation 3.3.3 qui est téléchargeable ci-dessous:
Ce lien n'existe plus
 

Hellboy

XLDnaute Accro
Bonjour lebardo & Albert

J'ai apporté certaines modifs a ton code lebardo. Dis moi ce que t'en pense. Il s'agit de le mettre dans le contexte par la suite au bon moment.


Code:
Sub cherche()
Dim rngPlage As Range
Application.ScreenUpdating = False
With Worksheets('Sociétés')
     .Select
'----------préparation-------------
    .Range('V9', Range('V9').End(xlDown)).ClearContents
    '-----------
    ' Détermine la plage de recherche
    Set rngPlage = Worksheets('Skandia').Range('B9:B1000')
    'Boucle pour vérifier chaque élément de la feuille société
    For i = 9 To .Range('B9').End(xlDown).Row
        If Not rngPlage.Find(What:=.Cells(i, 2)) Is Nothing Then
           ' Si Trouve, inscrit 'Présent' de la ligne correspondante dans la colonne V de la feuille société
           .Cells(i, 22) = 'Présent'
        Else
           ' Si Trouve pas , vide la case de la ligne correspondante dans la colonne V de la feuille société
           .Cells(i, 22) = Empty
        End If
    Next i
    Set rngPlage = Nothing
End With
Application.ScreenUpdating = True
End Sub

@+
 

albert

XLDnaute Occasionnel
Bonsoir Hellboy, lebardo,bonsoir forum,


Lebardo,
Pour identifier les variables, il faut les nommer.
Tu peux remplacer i par bzz si tu veux, et sico par brr

For i = 2 To Range('B9').End(xlDown).Row est une boucle qui cherche dans Sheets('Sociétés') à partir de la ligne 2, jusqu’à la dernière ligne End(xlDown)
Le code cherche la valeur de chaque ligne dans la colonne B, soit Rech = Cells(i, 2).Value (cells(ligne,colonne)

Dans la feuille skandia, le code cherche dans chaque ligne la valeur qu’elle affecte à sico (« brr » si tu veux)
sico = .Find(What:=Rech).Value
et ensuite vérifie la correspondance de cette valeur affectée avec la ligne dans Sheets('Sociétés')
copie le résultat
Cells(i, 5).Value = sico dans la colonne E (cells(ligne,colonne)
Et indique 0 si aucune correspondance est trouvée

&&&&&&&&&&&&&&&&&&&
Le code Helloboy donne la même solution, avec un détail, tout de même, il faut supprimer le ';' après Else, si tu veux que ça marche
Else
; ' Si Trouve pas , vide la case de la ligne correspondante dans

&&&&&&&&&&&&&&&&&&&&
les explications de Helloboy sont de même nature
'Boucle pour vérifier chaque élément de la feuille société
For i = 9 To .Range('B9').End(xlDown).Row
La variable i va parcourir la ligne 9 jusqu’à la dernière ligne
En cherchant dans la colonne B : .Find(What:=.Cells(i, 2))

Et en écrivant présent si la correspondance est trouvée.Cells(i, 22) = 'Présent'
Ou rien, s’il n’y a pas correspondance : .Cells(i, 22) = Empty



Voilà, petit à petit le code devient compréhensible
(du moins, je l'espère)

albert
 

lebarbo

XLDnaute Occasionnel
Bonjour,
alors pour le code impecable, il marche bien il y a juste un petit détail à résoudre. En fait dans la liste que l'on télécharge chez Skandia il rajoute un espace après le nom du fonds par exemple :
Skandia US All Cap Value Fund A (C)[espace]
alors que les fonds télécharger dans morningstar il n'y a pas cette espace :
Skandia US All Cap Value Fund A (C) (si on télécharge par exemple les fonds de la société skandia)
Du coup, la macro cherche considère à juste titre qu'il n' y a pas de fonds 'présent'.
Il faudrais faire un code dans la macro servant à télécharger la feuille skandia disant d'effacer le dernier espace du nom du fonds dans chaque ligne. Seulement c'est toujours le même problème je ne vois pas comment faire. Il y a surement une fonction 'erase last space'
:huh:

bye :)
 

lebarbo

XLDnaute Occasionnel
je place le code où ?? :eek:

sinon autre chose vis à vis du code cherche je souhaiterais directement le mettre à la suite du code macro OPCVM pour qu'il s'execute juste après vous savez comment je peux faire ?
J'ai essayé de le coller directement à la suite dans le module 1 mais j'ai guère l'impression que ça marche.
 

Statistiques des forums

Discussions
312 180
Messages
2 085 995
Membres
103 082
dernier inscrit
adri77