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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Corona
Le #20354701
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




FFO
Le #20354691
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
Jacky
Le #20354681
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"
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




garnote
Le #20354821
Ave Corona,

Yep, bonne idée.
Plus rapide ainsi.

A+ et merci
Serge




"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





Publicité
Poster une réponse
Anonyme