Bonjour,
Je m'adresse aux connaisseur du language objet:
Je suis sur un projet:
j'ai un document qui repertorie des données de PnL (profit & loss) de differents perimetres dans un workbook. On y decouvre tous les perimetres et sous perimetres et sous sous perimetres etc.
Dans ma feuille de mon projet , j'ouvre donc ce workbook pour y recuperer des donnéespour les perimetres qui m'interessent
Je decide donc de recuperer les differents perimetres qui m'interessent , et qui sont sur une de mes feuilles de mon thisworkbook pour pouvoir les recherc her dans mon document que j'ai presenté en premier.
Pour cela je decide de creer un dictionnaire car je m'occupe de recuperer seuelement certains perimetres qui sont souvent la somme de d'autres perimetres. Ce dictionnaire aurait donc le nom du perimetre qui m'interesse en clee et en valeur j'aimerais mettre un objet. Cet objet j'ai besoin d'aide pour le creer, pour l'instant j'ai pas de probleme a donner une valeur et creer des attributs , mais je voudrais que cet objet puisseavoir plusieurs sous parties( sous perimetres) que l'on puisse ajouter des sous perimetres, qu'il ai comme attribut le nom . et pouvoir creer un nombre de sous attribut dependant du perimetre, donc pas qu'en lecture mais aussi en ecriture. Voila, merci de votre aide je met mon code qui marche tres bien , je demande juste quelques conseils pour creer cet objet , j'espere avoir ete claire , merci d'avance.et mes attribut mis juste sous forme de variables globale dans un module de classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Option Explicit 'dictionnaire de definition de perimetres Function DicoPerimetres(ByVal Source As Workbook) As Dictionary 'definition des variables Dim TheRange As Range: Dim AllRange As Range Dim myrange As Range: Dim CoinG As Range Dim Mydico As New Dictionary Dim MyBreachs As Breach Dim Adresse As String Dim i As Long 'determiner le range dans le fichier source Source.Worksheets("RATES Limit Breach").UsedRange.Select Set CoinG = Selection.Find(what:="perimetres") Adresse = CoinG.Address Set TheRange = Source.Worksheets("RATES Limit Breach").Range(Adresse) Set AllRange = Source.Worksheets("RATES Limit Breach").Range(TheRange.Offset(1), TheRange.End(xlDown)) AllRange.Select 'creation du dico For Each myrange In AllRange If Not Mydico.Exists(myrange.Value) Then Set MyBreachs = New Breach MyBreachs.S_P1 = myrange.Offset(, 0).Value MyBreachs.S_P2 = myrange.Offset(, 4).Value Mydico.Add myrange.Value, MyBreachs 'vidage de l'objet Set MyBreachs = Nothing End If Next myrange 'on copie le resultat dans ma fonction Set GetBreach = Mydico 'fermeture dico et workbook Set Mydico = Nothing End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Option Explicit Public S_P1 As String Public S_P2 As String
Partager