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

Savoir si une liste est triée par ordre alphabétique ou pas

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 !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

J'ai une liste sur une seule colonne.
Je voudrais savoir comment on peut vérifier si le tri de cette liste l'est par ordre alphabétique ou pas.

Merci pour votre aide.
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Bonjour Magic_Doctor 😉

Si la liste est triée, la cellule de dessous est supérieure à celle en cours
Donc il suffit de faire une boucle et de tester jusqu'au bout si la cellule suivante est bien supérieure à celle en cours

Ou sinon, faire automatiquement un tri

A+
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Bonsoir Magic_Doctor, Bruno,

Si la plage à étudier est nommée Liste, utilise cette formule :

Code:
="Liste "&REPT("non ";SIGNE(SOMMEPROD(N(DECALER(Liste;;;NBVAL(Liste)-1)>DECALER(Liste;1;;NBVAL(Liste)-1)))))&"triée"
A la place du nom Liste on peut tout aussi bien mettre sa référence.

A+
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Re,

S'il y a des textes vides "" dans Liste utiliser :

Code:
="Liste "&REPT("non ";SIGNE(SOMMEPROD(N(DECALER(Liste;;;NB.SI(Liste;"><")-1)>DECALER(Liste;1;;NB.SI(Liste;"><")-1)))))&"triée"
A+
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Bonjour job,

Gracias pour ta réponse. Je conserve tes formules au cas où j'en aurais besoin, n'étant pas très à l'aise avec les formules.
Je signale que, pour les chiffres (sait-on jamais...), la 1ère formule marche apparemment mieux que la seconde ; du moins dans mes essais.
Seulement, voilà, je voudrais faire ce test non pas par formules mais par macro. Et je ne vois pas comment, en VBA, je peux comparer les cellules qui se succèdent tout au long d'un tableau en fonction de leur, disons, chronologie alphabétique.
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Re Magic_Doctor, bonsoir 00 🙂

Ma 2ème formule (avec NB.SI) ne fonctionne que sur des valeurs textes.

On peut bien sûr utiliser une fonction VBA :

Code:
Function TEST(liste As Range) As String
Dim i&
For i = 2 To liste.Count
  If liste(i) <> "" Then If liste(i - 1) > liste(i) _
    Or liste(i - 1) = "" Then TEST = "Liste non triée": Exit Function
Next
TEST = "Liste triée"
End Function
Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Re,

Bonsoir le forum, Job, tout le monde et "double zero",

J'ai testé, j'aime bien, c'est simple et efficace.

Ps1 en hommage à un MP qui m'avait touché
Ps2 pas dit que les autres solutions n'étaient pas bien ! 😱
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Re, salut Gardien de phare,

J'ai enfin testé ta solution DoubleZero.

Elle est excellente car elle effectue une comparaison avec un tri effectif.

Plus de problème avec les textes vides (qui se retrouvent en tête avec un tri croissant).

A+
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Bonsoir le fil 😉

Sinon le code dont j'avais parlé au début
Code:
Option Compare Text

Sub BrunoM45TriOuiNon()
  Dim DLig As Long, Lig As Long
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  For Lig = 2 To DLig
    If Range("A" & Lig + 1) < Range("A" & Lig) Then Exit For
  Next Lig
  If Lig < DLig Then MsgBox "Tri non effectué" Else MsgBox "Tri effectué"
End Sub

Effectivement il ne faut par oublier : Option Compare Text

A+
 
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Re,

Finalement il faut utiliser IsEmpty :

Code:
Function TEST(liste As Range) As String
Dim i&
For i = 2 To liste.Count
  If Not IsEmpty(liste(i)) Then If liste(i - 1) > liste(i) _
    Or IsEmpty(liste(i - 1)) Then TEST = "Liste non triée": Exit Function
Next
TEST = "Liste triée"
End Function
Fichier (3).

Edit pour Bruno : OK pour Option Compare Text si l'on ne veut pas tenir compte de la casse.

A+
 

Pièces jointes

Dernière édition:
Re : Savoir si une liste est triée par ordre alphabétique ou pas

Re,

Je te signale que Magic_Doctor n'a pas parlé de "Casse"
Mais pourquoi faire simple quand on peut faire compliquer 😉
 
- 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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
503
Réponses
4
Affichages
133
  • Question Question
Microsoft 365 Carte géogrpahique
Réponses
6
Affichages
287
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…