[Moved from VB6 to VBA] tranfere de tableaux

dav1081 Messages postés 12 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 20 février 2011 - 3 nov. 2009 à 10:33
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 4 nov. 2009 à 01:01
bonjour
j expose mon PB donc j a 3 tableaux en vba, tabl1(X) tabl2(X) et tabl3(X) et je voudrai les transfere dans un seul tableaux (X,3)
mais je n y arrive pas et je suis a cour d idée
merci

PS modo : j ai mis dans V6 car j ai pas trouvé la parti VBA dans les themes

10 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
3 nov. 2009 à 10:41
Salut
Il y a une astuce si tes tableaux sont de type String uniquement : Join et Split
Join te permettra de transformer un tableau en chaine.
Tu le fais sur chaque tableau et tu concatène les trois chaines.
Ensuite, tu n'as plus qu'à faire un Split piur recréer le nouveau tableau.

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
3 nov. 2009 à 10:46
Ah, excuses, je n'avais lu correctement ta question.
Tu veux recréer un tableau multidimensionnel.
Là, Join ou Split ne sauront pas traiter.
Tu n'as plus que de boucle For-Next pour énumérer les valeurs de tes tableaux originaux et stocker chaque donnée dans ton nouveau tableau.

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
3 nov. 2009 à 11:49
j ai trouver la fonction array pour mettre tous mes tableaux dans un seul ,mais le probleme est que je crée de "sous tableaux " je suis un peu perdu pour chercher des valeur
et quand je veux prendre le tableaux et le copie dans excel sa marche pas trop bien a cause des "sous tableaux "
je suis perdu je sais pas quoi faire
PS:une boucle me prendrai enormene tde temps j ai enormenet de mesure dans le tableaux
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
3 nov. 2009 à 13:50
On veut bien t'aider, mais à part dire que tu es perdu ...
On ne sait pas ce que tu as essayé. Si tu nous le disais, on pourrait être plus efficace.
Quant aux boucles, non, je ne vois pas pourquoi ce serait long (à part si tu traites des millions d'infos dans des tableaux, ce qui ne serait pas à l'origine une bonne idée).

Commence par nous dire :
- le type de variable de tes tableaux
- les dimensions maxi de ces tableaux
- ce que tu as essayé et qui ne marche pas

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

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

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
3 nov. 2009 à 15:02
Salut,

les données de tes tableaux elles viennent d'ou ?

Pourquoi utilises-tu des variables tableaux ?

Pourquoi ne pas utilisé une feuille excel temporaire, excel qui je le rappel est un tableur, pour regrouper tes valeurs ?

???

A+
0
dav1081 Messages postés 12 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 20 février 2011
3 nov. 2009 à 16:11
mes valeur proviennent d un systeme de mesure de temperature , les mesure de chaque capteur sont stocké dans un tableau separé ( pour facilité les calcul) et je voulais rassemble c est tableau pour effectué un calcul (plus simple pour effectué une boucle de calcul) et aussi tranfere mes donne vers excel.
pourquoi ne pas utilisé de feuille excel temporaire simplement pas un soucie de rapidité d execution etant donne que j ai plusieur millier de mesure , j ai besoin de ralentir au mini ma macro qui ne fais pas que sa .

J ai utilise la fonction array : tableau() =array(tabl1(),tabl2()....tabl2())
j arrive a rassemblé tous sa, mais j arrive pas a rappelé mes valeur
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
3 nov. 2009 à 17:57
Ca ne nous dit toujours pas le type de tes données, ni leur nombre ...

"Tableau séparé pour faciliter les calculs" ?
Quelle différence y a t-il entre faire un calcul avec un tableau à une dimension ou à deux ?

Voilà ton organisation :
Tes mesures du four "bleu" sont rangées dans FourA(x)
Celles du four "rouge" sont rangées dans FourB(x)
Maintenant, imagine que tu aies 4000 fours à gérer : tu vas créer autant de tableau que de fours ?
Non, il faut, dès l'acquisition des mesures, indexer la source des données.
En disant que bleu 0 et rouge 1, il te suffit de créer un tableau à deux dimensions, Fours(n, x) où :
"n" sera l'index représentant le four = la source de données
"x" l'index des échantillons de mesures

Que tu écrives une boucle pour faire, par exemple, une moyenne avec dedans
maVar = maVar + monTableau(r) ' Simple dimension

ou
maVar = maVar + monTableau(t, r) ' Double dimension
il n'y a aucune différence en terme de complexité, sachant que, dans cette boucle, "t" garderas toujours la même valeur fixe, je ne vois pas la difficulté

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
3 nov. 2009 à 18:12
PS : "j ai plusieur millier de mesure" : plusieurs milliers, ça commence à 2000, ce qui ne serait pas pénalisant.
Si tu en as 800.000, là, ça commencerait à coincer ...
Donne-nous un chiffre approximatif, qu'on aprécie la charge que cela représente, puisque tu ne veux pas faire de test de vitesse toi-même.
<Site intéressant> sur les comparaisons de méthodes en tout genre
0
dav1081 Messages postés 12 Date d'inscription lundi 12 janvier 2004 Statut Membre Dernière intervention 20 février 2011
3 nov. 2009 à 18:34
le type de mes donner sont des sont des single
la facilete entre un tableaux uni et multi dimensionnelle est plus dans la parti de recopie dans la page excel un tableaux multi dimensionnel m obligerai a remettre mes valeur en colonne donc perte de temps et possibilité d erreur
apres en terme de quantité il faut compté entre 20000 a 30000 mesure pas sonde( et plus dans certain cas) ,et j ai entre 5 et 20 sonde de temperature
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
4 nov. 2009 à 01:01
Bon. 600.000 données, c'est sûr, ça commence à faire.
Mais une boucle ne devrait pas prendre plus de 20 secondes.
Qu'est-ce qui t'embète dans le principe ? (parce que, de toute façon, je vois mal comment tu pourrais faire autrement)
Je viens de faire un essai avec des tableaux de 20 x 30000 : Sur ma machine, ça prend moins de 3 secondes ...

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
Rejoignez-nous