Bonjour, une question :
Pourquoi est il impossible de creer une variable public de type tableau dans une instance 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 'dictionnaire de forme et de Contenu des perimetres Function DicoPeriContents() As Dictionary 'variables Dim AllRange As Range Dim MyRange As Range Dim MyDico As New Dictionary Dim My_Perimetre As Perimetres Dim xlsheet As Worksheet Dim NbC As Long, Line As Long Dim i As Long 'definition sheet Set xlsheet = ThisWorkbook.Worksheets("Parametrages") 'Definition du ranges With xlsheet 'NbC et NbL Line = .UsedRange.Find("PnL").Row NbC = .Cells(Line, .Columns.Count).End(xlToLeft).Column Set AllRange = .Range(.Range("NomPerimetre").Offset(, 1), .Range("NomPerimetre").Offset(, NbC - 1)) For Each MyRange In AllRange If Not MyDico.Exists(MyRange.Value) Then Set My_Perimetre = New Perimetres My_Perimetre.CadreName = MyRange.Offset(-1, 0).Value My_Perimetre.Name = MyRange.Value My_Perimetre.Format = MyRange.Offset(-2).Value My_Perimetre.TabContents = Application.Transpose(.Range(MyRange.Offset(1), MyRange.End(xlDown)).Value) MyDico.Add MyRange.Value, My_Perimetre End If Next MyRange End With Set DicoPeriContents = MyDico Set MyDico = Nothing End Function
J'ai declaré la variable contents dans ma classe Perimetres, mais je suis obligé de la declarer en variant, résultat quand contents est constitué que d'un element ce n'est pas un tableau , de plus si je veux le parcourir je ne peux pas il me dis qu'il y a un probleme au niveau du get et du let non instancié et ceci , que je crais la lecture ou l'ecriture ou non.
J'ai trouvé une solution en transferant dans un autre tableau et en metant une condition si la dimension est de 1 mais bon , je trouve bisard , si quelqu'un a une reponse je suis preneur merci
Partager