Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sont-ils en ordre croissant ?

4 réponses
Avatar
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

4 réponses

Avatar
Corona
Bonjour Garnote,

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 :
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




Avatar
FFO
Bonjour serge

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
Avatar
Jacky
Bonjour,
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" a écrit dans le message de news:

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




Avatar
garnote
Ave Corona,

Yep, bonne idée.
Plus rapide ainsi.

A+ et merci
Serge




"Corona" a écrit dans le message de news:

Bonjour Garnote,

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 :
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