Tableau

chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012 - 2 juil. 2007 à 08:53
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012 - 10 juil. 2007 à 08:10
Bonjour à tous, je débute en VB6 et on m'a confié un programme !

Je reçois des valeurs en continue provenant d'un microcontrolleur sur une meme Textbox. Je souhaiterais récupérer toutes les valeurs et les mettre dans un tableau pour pouvoir faire en continue la moyenne des 20 dernières valeurs et afficher le graphique de la moyenne sur VB6.

Est-ce que quelqu'un peut m'aider ???

Merci d'avance

31 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 59
2 juil. 2007 à 08:59
Salut,
Je en sais pas si ca peut te convenir mais regarde ceci
'Définition d'un tableau de Double
Dim MonTableau() As Double
'Dimensionnment du tableau
ReDim MonTableau(0)

'lorsque tu recois une valeur:
'Place la valeur dans l'indice supérieur
MonTableau(UBound(MonTableau)) = TaValeur
'Ajout d'un esapce dans le tableau

'Preserve permet de ne pas supprimer les valeurs contenues
'dans le tableau lors du redimensionnement
ReDim Preserve MonTableau(UBound(MonTableau) + 1), ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
2 juil. 2007 à 09:00
Salut,

Pour créer un tableau tu peux faire comme cela :

Dim MyTableau(20) As String ' Réserve 20 emplacements dans ton tableau

Aprés pour y écrire dedans tu fais :

MyTableau(1) = Text1.Text

Puis pour lire ton emplacement "n°1" tu fais :

Text1.Text = MyTableau(1)

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 09:00
Bonjour,

En continu ?

Si oui, il va te falloir alimenter le tableau en même temps que la textbox et jouer avec l'événement change de la textbox (ce qui t'évitera un timer).

Seul truc : il te faudra constamment redimensionner ton tableau !
Tu pourrais éviter ce redimensionnement en utilisant une listbox en lieu et place d'un tableau
0
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012
2 juil. 2007 à 09:37
merci pour vos réponses, je regarde ce que je peux faire !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012
2 juil. 2007 à 09:44
Euh par contre j'ai oublié de demander, comment je peux voir le tableau que je rempli sur la feuille objet ???

(dsl je suis un boulet )
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 09:48
Attends, là...
Comment tu peux voir le tableau ?
De quoi parles-tu ?
J'espère que tu ne vas pas finalement vous annobcer que tu développes sous VBA et qu'il s'agit d'un tableau Excel !...
Tu es ici dans la section VB6 de ce forum !!!
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 59
2 juil. 2007 à 09:48
Salut,
Effectue une boucle qui parcours le tableau et rempli une listbox
ou bien passe directement par la listbox comme le proposait [auteurdetail.aspx?ID=615490 jmfmarques]

@+: Ju£i?n
Pensez: Réponse acceptée
0
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012
2 juil. 2007 à 09:53
ok merci !
non jmfmarques je ne vais rien annoncer . je voulais juste savoir comment voir les valeurs du tableau pour pouvoir en faire la moyenne derrière !
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 59
2 juil. 2007 à 09:59
Salut,
Dans ce cas si c'est pour le calcul des moyennes, inutile d'utiliser une ListBox, tu parcours le tableau dans une boucle pour ressortir la somme, puis tu divie par le nombre d'élément du tableau;

Attention a la maniere dont tu as redimensionner ton tableau, tu auras peu être un élément toujours vide.

autre idée est de memoriser la somme à chaque fois que tu recoit une valeur (+ le nombre de valeur recues).

Cela t'éviteras peu être aussi l'utilisation du tableau.

@+: Ju£i?n
Pensez: Réponse acceptée
0
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012
2 juil. 2007 à 10:28
j'ai utilisé le code que tu as écrit jrivet pour la déclaration du tableau, mais je ne vois pas comment faire la boucle pour ressortir la somme...
Je suis un débutant en matière de programmation. dsl
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 10:49
Re,

Pourquoi faire une boucle alors qu'il suffit :
-d'une variable qui s'incrémente par le dernier ajout (àcahque insertion)
- d'en profiter pour "tirer" dans la foulée la moyenne ( = valeur de cette variable / nb d'articles du tableau ou de la listbox).
0
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012
2 juil. 2007 à 11:37
oui mais je ne vois pas du tout comment je peux faire ce que tu me dit !!!
Si tu pouvais détailler ça m'arrangerait !
0
Neron2005 Messages postés 63 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 1 décembre 2013
2 juil. 2007 à 11:57
En faite, il faudrait que tu memorise une moyenne qui change avec le nombre de donné que tu y aporte. En gros ca donne :

Dim nb 'nombre de valeur dans la moyenne
Dim m 'moyenne
Dim nVal 'la valeur que tu ajoute

m = ( (m * nb) + nVal ) / (nb + 1)
nb = nb + 1

en gros ca donne la moyenne est egale a l'ancienne moyenne multiplié par son coeficient (c'est a dire le nombre de valeur precedante) + plus la derniere valeur on aura donc l'equivalence de nb valeur + 1 donc pour faire la moyenne on divise par le nombre de valeur  plus une, ensuite on incremente nb pour savoir combien il y a eu de valeur et c'est finit. Enfin non on recomence ensuite lorsque l'on fait un autre calcule.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 12:13
Bien complique, tout cà !
Il suffit d'une variable toto

toto = toto + Val(dernieajout)
nb = nb+ 1
moyenne = toto/nb

encore que nb (si tableau), c'est tout simplement le Ubound du tablreau  ou (si listbox) le Liscount de la listbox !
0
chewie_62 Messages postés 22 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 13 décembre 2012
2 juil. 2007 à 13:09
merci pour vos rensignements
0
Neron2005 Messages postés 63 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 1 décembre 2013
2 juil. 2007 à 13:27
le truc du toto ca marche que si ta des petite valeur et que t'en a pas trop sinon t'arrive vite a depacement de capacite en long je parle et apres en double c'est pas precis si tu depace 10 ^ 14 mais sinon ca revient au meme.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
2 juil. 2007 à 14:37
Comme tu parles de moyenne sur les 20 dernières valeurs, il faudra que tu refasses ton tableau dès qu'il y aura 20 valeurs entrées.
Donc
Tableau(0) = Tableau(1)
Tableau(1) = Tableau(2)
...........
Tableau(19) = NouvelleValeur

le tout dans une boucle, bien sûr

MPi
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 14:45
Salut MPI,
ou garder le truc de la variable toto et faire une soustraction de la valeur du 1er article si le nombre est supérieur à 20
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 14:46
et diviser par 20 (pour la moyenne) si le nombre est supérieur ou égal à 20, bien sur.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 15:24
je rectifie
"ou garder le truc de la variable toto et faire une soustraction de la valeur du 1er article si le nombre est supérieur à 20 "
par
"ou garder le truc de la variable toto et faire une soustraction de la valeur de la valeur nombre-20 si le nombre est supérieur à 20 "
0