Sont-ils en ordre croissant ?
Le
garnote

Bonjour,
J'ai une imposante série de nombres sur une seule colonne.
Pour savoir si ces nombres sont en ordre croissant,
je sélectionne la série et je lance cette macro :
Sub Ordre_Croissant()
Set ici = Selection
n = ici.Count
For i = 2 To n
If ici(i) >= ici(i - 1) Then k = k + 1
Next i
If k = n - 1 Then MsgBox "En ordre croissant" _
Else MsgBox "Pas en ordre croissant"
End Sub
qui me semble compétente.
Qu'en pensez-vous ?
Avez-vous une autre façon d'aborder le problème ?
Bonne journée
Serge
J'ai une imposante série de nombres sur une seule colonne.
Pour savoir si ces nombres sont en ordre croissant,
je sélectionne la série et je lance cette macro :
Sub Ordre_Croissant()
Set ici = Selection
n = ici.Count
For i = 2 To n
If ici(i) >= ici(i - 1) Then k = k + 1
Next i
If k = n - 1 Then MsgBox "En ordre croissant" _
Else MsgBox "Pas en ordre croissant"
End Sub
qui me semble compétente.
Qu'en pensez-vous ?
Avez-vous une autre façon d'aborder le problème ?
Bonne journée
Serge
Sub Ordre_Croissant()
Set ici = Selection
n = ici.Count
Txt = "En ordre croissant"
For i = 2 To n
If ici(i) < ici(i - 1) Then Txt = "Pas en ordre croissant": Exit For
Next i
MsgBox Txt
End Sub
Philippe Tulliez
garnote a écrit :
Tu peux utiliser la mise en forme conditionnelle sur chaque cellule
avec l'option inferieur à et la cellule suivante
Celà oblige à balayer la colonne pour détecter une cellule colorée
Ou
Utiliser la fonction Si ainsi :
=SI(A2 < A1;1;"")
à mettre dans la cellule B2
Puis avec un filtre colonne B regarder la présence du choix 1
D'autres possibilités donc
A toi de voir
Une bidouille
Les données en colonne A
'------------
Sub jj()
Columns("A:A").Copy Columns("iv:iv")
Columns("iv:iv").Sort Key1:=Range("iv1"), Order1:=xlAscending
MsgBox IIf([SUM((a1:a65535<>iv1:iv65535)*1)=0], "Oui, trié", "Non trié")
Columns("iv:iv").Delete
End Sub
'-------------
--
Salutations
JJ
"garnote"
Yep, bonne idée.
Plus rapide ainsi.
A+ et merci
Serge
"Corona"