Trier des données

Résolu
Juliette2215 -  
 Juliette2215 -
Bonjour,

Je cherche à traiter des résultats issus d'un logiciel de simulation (fluent). Je me retrouve avec cinq colonnes de même taille (62500 valeurs) :
- numéro du noeud
- x coordonnée ex : (0,0,0...,a,a,a....)
- y coordonnée ex : (0,a,b,..,0,a,b,...)
- vitesse radiale ex : (a,b,c,d,e,f,...)
- vitesse axiale ex : (a,b,c,d,e,f,...)

Mon problème est que pour utiliser ces données, je dois les ré-arranger comme tel :
X : ligne
Y : colonne
vitesse radial et vitesse axiale : une matrice pour chaque.

Je peux le faire à la main en utilisant un filtre sur x, puis en prenant successivement les valeurs obtenues pour la vitesse radiale par exemple et en les collant par transposition dans une première ligne, avant de prendre la valeur de x suivante et de refaire la même chose en sautant une ligne.

Bien évidemment c'est super lourd, et vu la quantité de données a traiter, y aurait-il un code VBA qui pourrait réaliser cela a ma place ? Je m'y connais un peu en C++, mais pas du tout dans ce type de langage..

En vous remerciant d'avance,

Juliette

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
un exemple sur 13 lignes et 3 colonnes
Option Explicit
Option Base 1
Sub transposer()
Dim Tablo()
Tablo = Range("A1:C13")
Range("E4").Resize(3, UBound(Tablo)) = Application.Transpose(Tablo)
End Sub


dans ton cas, si j'ai compris ton exposé
il faudrait le faire en 4 fois
noeud,X,Y et 2 vitesses

mais je ne vois pas comment tu peux caser 62500 données en colonnes

Michel
0
Juliette2215
 
Bonjour,

Merci pour cette réponse rapide ! Mais malheureusement mon problème est un peu plus compliqué..

Avec mes vecteurs je veux obtenir :
- coordonnées selon x : trier du plus petit au plus grand, enlever les doubles, puis copier en transposant dans une autre feuille. [On passe de (62500x1) à (1x250)]

- coordonnées selon y : enlever les doubles, puis copier dans une autre feuille.
[On passe de (62500x1) à (250x1)]

- Pour une des vitesses : Au lieu d'avoir un vecteur (62500x1), je veux obtenir une matrice (250x250) ( Soit une matrice M{x,y} ).

Pour le traitement des coordonnées x et y c'est bon, j'ai enregistre une macro, mais pour les vitesses je ne sais absolument pas comment faire pour les traiter à l'aide d'un code (cf. premier post pour avoir une idée des manipulations à effectuer manuellement) ..
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Oui mais pourquoi ne pas le dire dès le départ ? j'ai bossé pour rien...

de toutes façons, sans voir un extrait de ton classeur... une petite maquette des objectifs serat la bienvenue

Pour cela, mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente

0
Juliette2215
 
Désolée, je ne pensais pas avoir été si peu clair..

Voilà un exemple des données que je dois traiter : http://cjoint.com/?0CnqfovyLvD
0