Comment trier de A à Z dans excell

Résolu
Bonjour,

voila , j'ai créé un truc hyper simple c'est à dire
un tableau excell basique qui comprend plusieurs colonnes A B C D
chaque colonne comprend toute une série de prénoms
j'arrive à les mettre par ordre alphabetique mais seulement colonne par colonne !!
colonne A de 1 à 20 par exemple , ca marche
colonne B de 1 à 20 ca marche
colonne C ect ....
MAIS quand je selectionne colonne A B C D (soit 4 colonne de 20 prénoms)
et que je fais trier de A à Z rien ne se produit ! ca reste trier par colonne uniquement

ca ne doit pas etre compliqué pourtant ! qu'est ce que je fais mal ?
merci d'avance

6 réponses

  1. En gros je voudrais que le prénom ''Albert" se trouve en A1
    et le prénom "Zaya "(lol) en D50

    et par la suite rajouter des prénoms quel qu'il soit et pouvoir rafraichir
    l'ordre alphabetique ....
    1
    1. Bonsoir,
      Es-tu sûr que rien ne se produit ? Normalement, Excel devrait trier la première colonne et réorganiser les autres colonnes pour conserver l'alignement des données. Par exemple, si en triant la colonne A, ce qui était en A6 vient en A1, alors ce qui était en B6 vient en B1, ce qui était en C6 vient en C1 ...

      Si tu veux trier les données en les faisant changer de colonne, je ne vois que les macros.

      @+
      0
      1. Pour les trier dans l'ordre, tous les prénoms doivent être dans la même colonne !
        0
        1. merci pour vos réponses !
          donc si j'ai 500 prénoms je ne peux que les mettre dans une seule colonne !!
          je dois descendre 500 cases plus bas ! se serai plus simple de faire 10 colonnes de 50 prénoms , selectionner les 10 colonnes et trier de A à Z !

          pfff quelle misère !
          en plus le but final est d'imprimer le tout sur 2 feuilles A4
          je comprend pas comment excel n'a pas pensé à ca !!
          0
          1. Contributeur
            Salut le forum

            Triage d'une plage par colonne
            Option Explicit
            Option Base 1
            
            Sub Trier_plage()
             Dim Test As Boolean
             Dim Temp As String
             Dim Lig As Byte, Col As Byte
             Dim Plage_Tri As Range
              
            Set Plage_Tri = Range("B4:D34")
            ReDim Temp_Array(Plage_Tri.Count) As String
            
            'Conversion de Matrice à Vecteur
            For Lig = 1 To Plage_Tri.Rows.Count
              For Col = 1 To Plage_Tri.Columns.Count
                Temp_Array(Lig + (Col - 1) * Plage_Tri.Rows.Count) = Plage_Tri(Lig, Col)
                Next Col
            Next Lig
            
            'Triage du Vecteur
            Do
            Test = False
            For Lig = LBound(Temp_Array) To UBound(Temp_Array) - 1
              If Temp_Array(Lig) = "" Then Temp_Array(Lig) = Chr$(255)
                If Temp_Array(Lig) > Temp_Array(Lig + 1) Then
                  Temp = Temp_Array(Lig)
                  Temp_Array(Lig) = Temp_Array(Lig + 1)
                  Temp_Array(Lig + 1) = Temp
                  Test = True
                End If
            Next Lig
            Loop Until Not Test
            
            'Conversion de Vecteur à Matrice
            For Lig = 1 To Plage_Tri.Rows.Count
              For Col = 1 To Plage_Tri.Columns.Count
                If Temp_Array(Lig + (Col - 1) * Plage_Tri.Rows.Count) = Chr$(255) Then
                  Plage_Tri(Lig, Col) = ""
                Else
                  Plage_Tri(Lig, Col) = Temp_Array(Lig + (Col - 1) * Plage_Tri.Rows.Count)
                End If
              Next Col
            Next Lig
            
            End Sub
            

            Mytå
            0
          2. Merci Myta !!

            quel travail vous avez du faire pour une execution , qui à la base , me
            paraissait si simple !!!

            Encore merci pour votre aide sur ce forum
            0