Bonjour,
Je suis actuellement en train de coder un module de classe d'opérations de matrice, et j'ai plusieurs questions
:
- Je souhaiterais savoir si il est possible de proposer une liste de choix, vous savez quand j'utilise par exemple une fonction sort, qui propose le choix xldescendant, ou xlascendant, peut on proposer une liste de choix nous aussi ?
- je cherche la confirmation que l'on ne peux pas saisir de parametre dans la sub d'initialisation , qui nous sert un peut de constructeur "Sub Class_Initialize()" on peut biensure initialiser des parametres mais la sub ne peux pas prendre de parametre ?
- Nous ne pouvons pas mettre une propriete get en private et la propriete en ecriture (let) en public ?
- en terme de performance, si je fais des fonctions optimisées en terme de complexite .. , est-ce performant de gerer plutot ma classe plutot que des tableaux dans vba, car la gestion des tableau dans vba est un peu incomplete, ma classe permet de gerer l'extraction de colonnes, somer les lignes , les colonnes etc, tout ce qui pourrait etre necessaire a du calcul numerique .
Merci d'avance, toute aide, conseils sont les bienvenus, car voudrais mieux comprendre le fonctionnement des objets dans vba ( un language facile mais qui pour le coup ne donne pas forcement la main sur les choses et on en sait pas toujurs ce que l'on manipule )
voici une toute petite partie de mon code :
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51 Option Explicit Option Base 1 Private P_MatDim As Variant Private P_Matrix As Variant: Private P_Det As Double, P_Init As Variant Private Sub Class_Initialize() End Sub Property Get MatDim() As Variant MatDim = P_MatDim End Property Public Property Get Matrix() As Variant Matrix = P_Matrix End Property Public Property Let Matrix(ByVal MyVector As Variant) P_Matrix = MyVector P_MatDim = Array(UBound(MyVector), UBound(MyVector, 2)) End Property Public Property Get Det() Det = P_Det End Property 'Initialisation de la matrice Public Property Let Init(ByVal MyVal As Variant) Dim i As Long, MyColVector, j As Long Dim MyMatrixT(), MyMatrix, MyValueVector Dim MyVect MyVect = Split(MyVal, ";") 'Nombre de lignes/ colonnes P_MatDim = Array(UBound(MyVect) + 1, UBound(Split(MyVect(0), ",")) + 1) 'On redimensionne ReDim MyMatrixT(P_MatDim(1), P_MatDim(2)) For i = 0 To UBound(MyVect) 'ligne MyValueVector = Split(MyVect(i), ",") For j = 0 To UBound(MyValueVector) ' colonne MyMatrixT(i + 1, j + 1) = CDbl(MyValueVector(j)) Next j Next i 'Mise à jour P_Matrix = MyMatrixT End Property
Partager