[Déplacé VB6 --> VBA] tableau VBA

dav1081 Messages postés 12 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 20 février 2011 - 2 nov. 2009 à 13:04
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 2 nov. 2009 à 16:32
Bonjour
je veux utiliser un tableau vba deux dimension : valeur(X,Y)
oui le nombre de colonne est fixe mais pas le nombre de ligne.
j effectue des acquisition de temperature que je met dans ce tableau et je voudrai calculer la moyen de temperature sur les 10 derniere mesure , est il possible de le faire sans passe par un tableau excel (car sa prendrai trop de temps de traitement)
et deuxieme question est il possible de copie un interval de mesure du tableau vers excel
merci

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 nov. 2009 à 13:43
Salut
A partir du moment où une des dimension doit être "dynamique" = modifiable par programme, il faudra aussi mettre le premier paramètre en dynamique, même si tu utilises toujours la même taille pour cette dimension.
Dans l'aide de VBA, voir l'aide de "tableaux dynamiques" qui te renverra sur les instructions ReDim à utiliser pour modifier les dimensions.

Pour calculer la moyenne, il te suffit de faire une boucle For-Next pour :
- additionner les valeurs dans une variable
- compter le nombre de valeurs dans une autre variable
Après la boucle, tu n'auras plus qu'à diviser la somme par le nombre de valeurs.
Là aussi, tout est expliqué dans l'aide de l'instruction "For"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
dav1081 Messages postés 12 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 20 février 2011
2 nov. 2009 à 14:02
merci jack
pour le redim ok j ai bien vu
par contre pour la moy c est ce que je fais mais j ai plus de 1000 mesure et sur 9 capteur et j ai peur que sa prenne trop de temps. je pensais que je pouvais utiliser les fonction excel "AVERAGE"
et aussi la partir selection d interval m interresse car je doit trouver les MAX et MIN dans un interval du tableau de mesure
merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 nov. 2009 à 16:21
Oui, tu dois pouvoir
Les fonctions proposées dans les feuilles Excel peuvent être appelées :
Exemple :
  Dim myRange As Range
  Set myRange = Worksheets("Feuil1").Range("B5:B8")
  MsgBox WorksheetFunction.Average(myRange)

Par analogie :
  Dim monTableau(0 To 3) As Integer
  monTableau(0) = 1
  monTableau(1) = 2
  monTableau(2) = 12
  monTableau(3) = 3
  MsgBox WorksheetFunction.Average(monTableau)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 nov. 2009 à 16:32
En cas de tableau multi-dimensionnel, je ne sais pas trop comment ça va réagir.
A mon avis, il fera bien la moyenne, mais sur tous les éléments du tableau, dans toutes les dimensions.
0
Rejoignez-nous