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

Ordre de tri different dans excel 2000 et dans VBA

2 réponses
Avatar
Dper123
Si on trie les cellules d'une colonne excel avec le menu "Données/trier" en
mode décroissant une cellule contenant A-2 va se trouver avant A_2. Si l'on
écrit une fonction de type SI (B1>B2; "Plus Grand"; "Plus petit") on aura
bien "plus Grand"; en revanche, si l'on écrit une macro qui parcourt les
cellules de la colonne alors
A-2 sera plus petit que A_2 ; de même pour la casse AA1=aa1 pour la
fonction SI, mais AA1 est plus petit que aa1 avec la macro
Cellule Fonction SI Resultat Macro
AB3 plus grand Plus grand
AAA plus grand Plus grand
AA1 egal Plus petit
aa1 plus grand Plus grand
A-2 plus grand Plus petit
A_2

Ci dessous la macro utilisée
Sub TestTri()
'Test d'une boucle pour l'ordre de tri
Dim i, jj As Variant
Dim cellA As Variant
Dim cellB As Variant
Dim cellC As Variant
For i = 1 To 5
Set cellA = Cells(i, 2)
Set cellB = Cells(i + 1, 2)

If Cells(i, 2) > Cells(i + 1, 2) Then
Cells(i, 5).Select
ActiveCell.Formula = "Plus grand"
Else
If Cells(i, 2) = Cells(i + 1, 2) Then
Cells(i, 5).Select
ActiveCell.Formula = "Egal"
Else
Cells(i, 5).Select
ActiveCell.Formula = "Plus petit"
End If
End If
Next i
End Sub

2 réponses

Avatar
Clément Marcotte
Rien de surprenant là-dedans. Excel trie selon l'ordre des codes
ASCII. Dans VBA, selon les paramètres de comparaison, il y a moyen de
rester plus près du véritable ordre alphabétique.

Regarder "option Compare" dans l'aide de VBA


"Dper123" a écrit dans le message
de news:
Si on trie les cellules d'une colonne excel avec le menu
"Données/trier" en

mode décroissant une cellule contenant A-2 va se trouver avant A_2.
Si l'on

écrit une fonction de type SI (B1>B2; "Plus Grand"; "Plus petit") on
aura

bien "plus Grand"; en revanche, si l'on écrit une macro qui parcourt
les

cellules de la colonne alors
A-2 sera plus petit que A_2 ; de même pour la casse AA1ª1 pour la
fonction SI, mais AA1 est plus petit que aa1 avec la macro
Cellule Fonction SI Resultat Macro
AB3 plus grand Plus grand
AAA plus grand Plus grand
AA1 egal Plus petit
aa1 plus grand Plus grand
A-2 plus grand Plus petit
A_2

Ci dessous la macro utilisée
Sub TestTri()
'Test d'une boucle pour l'ordre de tri
Dim i, jj As Variant
Dim cellA As Variant
Dim cellB As Variant
Dim cellC As Variant
For i = 1 To 5
Set cellA = Cells(i, 2)
Set cellB = Cells(i + 1, 2)

If Cells(i, 2) > Cells(i + 1, 2) Then
Cells(i, 5).Select
ActiveCell.Formula = "Plus grand"
Else
If Cells(i, 2) = Cells(i + 1, 2) Then
Cells(i, 5).Select
ActiveCell.Formula = "Egal"
Else
Cells(i, 5).Select
ActiveCell.Formula = "Plus petit"
End If
End If
Next i
End Sub



Avatar
Dper123
Merci pour la réponse , évidente pour certains, bien utile aux débutants