Problème de remplissage dune matrice.
Bonjour, je développe une macro qui réalise une chaîne de cote de pignon et je rencontre un problème tout bête à faire à la main, mais pour le programmer, je memmêle les pinceaux.
Voici mon cas détude :
Jai un premier tableau dit « Condition » (3 lignes et 3 colonnes pour lexemple):
(1ère colonne = N° de la condition, 2ème = Origine de la cote, 3ème = extrémité de la cote)
Les origines et les extrémités vont de 10 en 10.
C1 10 20
C2 20 40
C3 30 40
Jai un second tableau dit « Transition » (idem 3 lignes et 3 colonnes)
T1 10 20
T2 10 30
T3 10 40
A partir de ces 2 tableaux, je voudrais créer une matrice ayant les conditions en lignes et les transitions en colonne.
On doit trouver pour cet exemple que
T1 = C1
T2 = C1+C2-C3
T3 = C1+C3
Soit la matrice que je dois obtenir.
C1 C2 C3
T1 1 0 0
T2 1 1 -1
T3 1 1 0
En fait je narrive pas à trouver comment la remplir sauf pour en (T1,C1)
Voici le programme : VBA sous CatiaV5R14
Sub CATmain()
'Création des cotes conditions
Dim C(3, 3)
'1er colonne
C(1, 1) = 1: C(2, 1) = 2: C(3, 1) = 3
'2ème
C(1, 2) = 10: C(2, 2) = 20: C(3, 2) = 30
'3ème
C(1, 3) = 20: C(2, 3) = 40: C(3, 3) = 40
'Tableau T
Dim T(4, 3)
'1er colonne
T(1, 1) = 1: T(2, 1) = 2: T(3, 1) = 3
'2ème
T(1, 2) = 10: T(2, 2) = 10: T(3, 2) = 10
'3ème
T(1, 3) = 20: T(2, 3) = 30: T(3, 3) = 40
Dim M1(3, 3)
For i = 0 To 3
For j = 0 To 3
M1(i, j) = 0
Next j
Next i
'Matrice M1 de la forme M1(T(i),C(j))
Dim NbreFace: NbreFace = 4
For i = 1 To NbreFace - 1
For j = 1 To NbreFace - 1
If T(i, 2) = C(j, 2) And T(i, 3) = C(j, 3) Then
M1(i, j) = 1
End If
X1 = 10
X2 = 20
Do While X2 < NbreFace * 10
If X1 = C(j, 2) And X2 < C(j, 3) Then
M1(i, j) = 1
End If
X2 = X2 + 10
Loop
Next j
Next i
'pour Vérifier ma matrice
Dim A1, A2, A3, B1, B2, B3, C1, C2, C3
A1 = M1(1, 1): A2 = M1(1, 2): A3 = M1(1, 3)
B1 = M1(2, 1): B2 = M1(2, 2): B3 = M1(2, 3)
C1 = M1(3, 1): C2 = M1(3, 2): C3 = M1(3, 3)
End Sub
SI vous avez une idée???
merci
Steph