Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014
-
22 nov. 2007 à 16:53
Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014
-
28 nov. 2007 à 15:02
Bonjour,
je suis débutant en VBA et j'aurais besoin d'un peu d'aide sur une macro que j'essaie de faire.
Je souhaiterais faire une fonction prenant en argumant une ou plusieurs plages de données et ensuite travailler ces données.
En commençant par quelque chose de simple, çà ne marche pas ...
Function Test(Z)
Test = Z.Select.Areas.Count #j'ai essayé sans le select et c'est pareil
End Function
la fonction me renvoie 0 quand j'attend 1 et #valeur le reste du temps.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 23 nov. 2007 à 00:08
Est-ce que c'est une macro ou une fonction personnalisée que tu cherches à faire ?
Est-ce que tu veux un résultat en écrivant une formule dans une cellule ou en cliquant un bouton, disons ?
Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014 23 nov. 2007 à 09:25
dans un premier temps c'est plus une fonction personnalisée que j'essaie de faire, mais bon çà se fait en tant que macro ...
je veux le résultat en tapant par exemple dans ma cellule
= test(A1:B5;C2:F4)
Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014 26 nov. 2007 à 12:14
j'ai encore un autre problème cette fois par rapport à du calcul matriciel.
J'ai défini
le vecteur X(n-1) et la matrice M(n-1,n-1)
et je voudrais calculer tX*M*X avec tX représentant "transposé de X".
J'ai marqué :
Transpose(X) * M * X
mais çà ne marche pas
çà indique
"erreur de compilation : sub ou function non définie" en surlignant la fonction "transpose" dans le code
Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014 26 nov. 2007 à 17:28
je reviens sur le précédent point.
Comment je fais pour créer une sub qui me permettrait de tester ma fonction sans avoir à repasser par le classeur excel ??
sub racine
debug.print note ( ?????)
end sub
Public Function Note(ParamArray Rng() As Variant) As Long
Dim i As Integer, n As Integer
For i = 0 To UBound(Rng)
n = n + Rng(i).Cells.Count
Next
A = 1 / 2 * Sin(alpha) * p2(0, 0)
Am = 1 / 2 * Sin(alpha) * 100 ^ 2 * n
Note = A / Am
End Function
__________________________________________________
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
__________________________________
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
Quand je le lance, le message d'erreur est le suivant :
"variable ou précédure attendue et non un module"
et la première occurence de "note" est surlignée dans la procédure notation
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 27 nov. 2007 à 23:35
Tu es trop gourmand d'informations...
Poste tes différentes questions dans un nouveau fil. Ce sera plus simple de trouver de l'aide. Et mets des titres clairs à tes questions.
ParamArray sert justement à intégrer un tableau de paramètres. C'est ce que tu aurais pu lire dans ton aide en ligne en cliquant le mot et tapant F1
Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014 28 nov. 2007 à 12:12
oui je sais que je suis (trop ) gourmand d'infos mais comme j'ai peu de notion de vba et puis pour moi toute ces questions forment un tout donc dissocier, ce n'est pas facile car à chaque fois je risque de me répeter ...
j'ai cherché dans l'aide paramarray et il n'y a aucun résultat à ma recherche ....
par contre il m'est encore apparu un autre problème alors que je testais ce petit prog sur une plus grande échelle et davantage de données.
En fait je travaille sur des données chiffrées mais il peut arriver que certaines cellules contiennent "-", ce qui signifie qu'il ny' a pas de résultat. El là çà coince dans le programme au niveau de la multiplication des matrices
la ligne :
C(i, j) = C(i, j) + A(i, k) * B(k, j)
est surlignée et le message d'erreur est:
"erreur d'exécution 13 : incompatibilité de type"