Classer rapidement des coordonnées.

Résolu
f117-nighthawk Messages postés 150 Statut Membre -  
f117-nighthawk Messages postés 150 Statut Membre -
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.

6 réponses

  1. Dolgan Messages postés 44 Statut Membre 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
  2. f117-nighthawk Messages postés 150 Statut Membre 11
     
    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
    1. Dolgan Messages postés 44 Statut Membre 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
    2. f117-nighthawk Messages postés 150 Statut Membre 11
       
      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
    3. Dolgan Messages postés 44 Statut Membre 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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  4. f117-nighthawk Messages postés 150 Statut Membre 11
     
    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
    1. Dolgan Messages postés 44 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f117-nighthawk Messages postés 150 Statut Membre 11
     
    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