Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

classement alpha d'un tableau à un autre en respectant 1 critère

  • Initiateur de la discussion Initiateur de la discussion hervoul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hervoul

XLDnaute Occasionnel
Bjr,
je voudrais classer des noms qui ont déjà été classés dans un tableau selon un critère simple (des chiffres de 8 à 18,5). Mais ils sont éparpillés... je voudrais simplement les classer alphabétiquement dans un tableau d'une autre feuille, et si possible rassemblés les un sous les autres...
Merci.
Rvoul
PS : voir fichier joint
 

Pièces jointes

Re : classement alpha d'un tableau à un autre en respectant 1 critère

Bonjour Hervoul, Bonjour Nyko283, le forum,

En formules dans l'exemple joint avec 2 plages variables définies (Inesrtion nom définir):
Code:
=DECALER('Elèves-VMA'!$A$4:$A$40;;EQUIV('nombre - VMA'!M$28;'Elèves-VMA'!$B$3:$L$3))
Pour Elèves qui correspond au tableau de 8 à 13
et
Code:
=DECALER('Elèves-VMA'!$A$44:$A$80;;EQUIV('nombre - VMA'!M$52;'Elèves-VMA'!$B$43:$L$43))
Pour Elèves2 qui correspond au tableau de 13,5 à 18,5

Pour les formules, sachant que les cellules qui ne contiennent pas de nom contiennent le caractère "^", j'ai utilisé la fonction NBCAR de façon à afficher toutes les valeurs d'au moins 2 caractères soit la formule:
Code:
=SI(SOMME((NBCAR(Elèves)>2)*1)>=LIGNES($A$29:$A29);INDEX(Elèves;PETITE.VALEUR(SI(Elèves<>"";LIGNE(Elèves));LIGNES($A$29:$A29))-3);"")
Formule matricielle à valider avec Ctrl-MAJ-Entrée

Cf exemple joint.

@+

Gaël
 

Pièces jointes

Re : classement alpha d'un tableau à un autre en respectant 1 critère

Re
une autre solution par macro (plus rapide si les plages sont importantes) :
Code:
Sub triTableau()
Dim Plage As Range, Plage2 As Range, nom, ligne&, t!
Application.ScreenUpdating = False
Set Plage = Sheets("Elèves-VMA").Range("B4:L40")
Set Plage2 = Sheets("Elèves-VMA").Range("B44:L80")
ligne = 1
colonne = 1
For i = 2 To Plage.Columns.Count + 1
    With Sheets("Elèves-VMA")
        nom = Sheets("Elèves-VMA").Range(.Cells(4, i), .Cells(40, i)).Value
    End With
    Dim Tablo()
    ReDim Tablo(1 To Plage.Rows.Count)
    For j = 1 To Plage.Rows.Count
        If Len(nom(j, 1)) > 0 Then Tablo(ligne) = nom(j, 1): ligne = ligne + 1: Nb = Nb + 1
    Next j
    
    For k = 1 To Nb
        For l = k To Nb
            If LCase(Tablo(l)) < LCase(Tablo(k)) Then
                temp = Tablo(l)
                Tablo(l) = Tablo(k)
                Tablo(k) = temp
            End If
        Next l
    Next k
    With Sheets("nombre - VMA")
        .Range(.Cells(29, i - 1), .Cells(65, i - 1)) = Application.Transpose(Tablo)
    End With
    ligne = 1
    Nb = 0
Next i

For i = 2 To Plage.Columns.Count + 1
    With Sheets("Elèves-VMA")
        nom = Sheets("Elèves-VMA").Range(.Cells(44, i), .Cells(80, i)).Value
    End With
    ReDim Tablo(1 To Plage.Rows.Count)
    For j = 1 To Plage.Rows.Count
        If Len(nom(j, 1)) > 0 Then Tablo(ligne) = nom(j, 1): ligne = ligne + 1: Nb = Nb + 1
    Next j
    
    For k = 1 To Nb
        For l = k To Nb
            If LCase(Tablo(l)) < LCase(Tablo(k)) Then
                temp = Tablo(l)
                Tablo(l) = Tablo(k)
                Tablo(k) = temp
            End If
         Next l
    Next k
    With Sheets("nombre - VMA")
        .Range(.Cells(68, i - 1), .Cells(104, i - 1)) = Application.Transpose(Tablo)
    End With
    ligne = 1
    Nb = 0
Next i
Application.ScreenUpdating = True
End Sub
A+
 

Pièces jointes

Dernière édition:
Re : classement alpha d'un tableau à un autre en respectant 1 critère

Re...merci encore, j'ai trouvé ce dont j'avais besoin, avec une petite préférence pour les macros...
RVoul
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…