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. 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
    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. 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. 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. Pour les trier dans l'ordre, tous les prénoms doivent être dans la même colonne !
          0
          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