[VBA Excel]

Nyck0las Messages postés 83 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2014 - 26 nov. 2007 à 15:49
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 27 nov. 2007 à 00:58
bonjour,

j'ai quelques problèmes pour réaliser une macro avec du calcul matriciel.

voici une sub qui calcule le produit A*B et le met dans C :

Sub PMAT(A, B, C)


Dim i As Integer, j As Integer, k As Integer
Dim n As Integer, m As Integer, p As Integer


n = UBound(A, 2)
m = UBound(A, 1)
p = UBound(B, 2)


ReDim C(m, p)


For i = 0 To m
    For j = 0 To p
        For k = 0 To n
            C(i, j) = C(i, j) + A(i, k) * B(k, j)
        Next
    Next
Next


End Sub

et une autre qui calcule la transposé du vecteur X

Sub Tvect(X, tx)


Dim i As Integer, n As Integer


n = UBound(X, 1)


ReDim tx(0, n)


For i = 0 To n
    tx(0, i) = X(i, 0)
Next


End Sub

dans mon programme principal, j'appelle les sub :

Call Tvect(X, tx)


Call PMAT(m, X, p1)
Call PMAT(tx, p1, p2)

et je veux calculer :


A = 1 / 2 * Sin(an) * p2

p2 est normalement une matrice ne comportant qu'un seul nombre.
Le programme ne marque "incompatibilité de type" en surlignant la ligne "A=..."

où est le problème ????

1 réponse

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 nov. 2007 à 00:58
Sub PMAT(A, B, C)

Essaie en mettant des types à ces variables/paramètres
Call PMAT(m, X, p1)
m = UBound(A, 1)
Est-ce que m est un tableau ?

MPi²
0
Rejoignez-nous