Classer rapidement des coordonnées.

Résolu
f117-nighthawk Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   -  
f117-nighthawk Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis embêté car j'aimerais automatiser un processus assez fastidieux.
A la base j'ai un fichier texte avec des coordonnées de points séparées uniquement par des virgules. E fin de compte j'ai une série de caractères de ce type : X1,Y1,X2,Y2,X3,Y3,...
J'ai importé mon fichier texte sur excel, mais je me retrouve avec une info par cellule (ça me va) et le tout sur plus de 500 colonnes...
Je veux répartir ça en 2 colonnes (celle des X et celle des Y) sur autant de lignes que nécessaire.
Comment puis-je procéder?

Pour info, je suis sur excel:mac 2011.

D'avance merci.


A voir également:

6 réponses

Dolgan Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   12
 
Bonjour,

Admettons que ta série de caractère X1,Y1,X2,Y2,X3,Y3,... commence en A1 et continue sur toute la ligne 1, avec une seule valeur par cellule.

Voici un petit code qui fait l'affaire :

Option Explicit

Sub trier_XY()

    Dim dC
    Dim col As Long, dLX As Long, dLY As Long
    
    'Récupère le numéro de la dernière colonne non vide de la ligne 1
    dC = Cells(1, Columns.Count).End(xlToLeft).Column
    
    'Titres des deux colonnes du tableau
    Cells(5, 2) = "Colonne X"
    Cells(5, 3) = "Colonne Y"
    
    dLX = Range("B" & Rows.Count).End(xlUp).Row
    dLY = Range("C" & Rows.Count).End(xlUp).Row
    
    For col = 1 To dC
        'Si le contenu de la cellule commmence par "X"
        If Left(Cells(1, col), 1) = "X" Then
            Cells(dLX + 1, 2) = Cells(1, col)
            dLX = dLX + 1
        'Sinon
        Else
            Cells(dLY + 1, 3) = Cells(1, col)
            dLY = dLY + 1
        End If
    Next col

End Sub

Dolgan
0
f117-nighthawk Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   10
 
Ok. Je test tout de suite et je reviens vers vous ensuite. :)

Edit : Ca ne fonctionne pas on dirait. La macro me met tout dans la conne Y. En fait je n'ai aucune lettre. J'ai juste des chiffres qui se suivent, séparés par des virgules (genre : 152,196,247,354,...)
0
Dolgan Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   12
 
Ah oui dans ce cas, c'est normal que toutes les valeurs aillent dans la colonne Y...

Et si les valeurs n'ont aucune lettre, comment veux-tu les trier ?
0
f117-nighthawk Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   10
 
En fait je veux que les 2 premiers chiffres correspondent, puis les 2 suivants, puis les 2 suivants,...
Après j'ai essayé de rajouter X et Y devant mes entrées mais il m'a rassemblé les données identiques, du coup j'ai perdu de la donnée... (et je n'arrive pas à lui faire faire des X1,Y1,X2,Y2,...)
0
Dolgan Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   12
 
"En fait je veux que les 2 premiers chiffres correspondent, puis les 2 suivants, puis les 2 suivants,..."
Peux-tu être plus précis ? Avec un exemple peut-être.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Merci de déposer le fichier xls (qq lignes, pas la peine de les convertir sur plusieurs colonnes, et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.

eric
0
f117-nighthawk Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   10
 
Bonjour.

Voilà la bête.
https://www.cjoint.com/?3ItnhJ3BpQm

Du coup j'ai fait 2 feuilles :
- Une sur laquelle vous avez ce que j'obtiens après avoir importé mon fichier texte (sois un chiffre par cellule sur une ligne jusqu'à... loin).
- La seconde montrant ce que je souhaite obtenir (donc les 2 premiers chiffres en correspondance côte à côte, puis les suivants, puis les autres, sur autant de lignes que nécessaire.)

D'avance merci.
0
Dolgan Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   12
 
Merci pour le fichier.
Mais quels sont tes critères de tri ?
Par exemple, je vois vers la fin, qu'il y a le nombre 374. Dans quelle colonne va-t-il aller ? Et pourquoi ?
0

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

Posez votre question
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

une proposition par formule : https://www.cjoint.com/c/DItnATnH4iD
eric
0
f117-nighthawk Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   10
 
Bonjour.

Eriic, ça a l'air d'être ce que je cherche en effet. Merci bien.
Dolgan, Ce que je souhaite c'est ranger ma ligne en 2 colonnes, en sachant que la première donnée est une abscisse et qu'entre 2 abscisses j'ai une ordonnée correspondant à l'abscisse la précédent. Ce que je voulais c'était donc de réunir toutes mes abscisses dans une colonne et les faire correspondre avec leurs ordonnées dans une seconde colonne.
Encore merci à vous deux et bonne continuation.
0