Ordre de tri different dans excel 2000 et dans VBA
2 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <Dper123@discussions.microsoft.com> a écrit dans le message
de news:D743C809-40EF-41C2-B26A-641EDC181982@microsoft.com...
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
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
Dper123
Merci pour la réponse , évidente pour certains, bien utile aux débutants
Merci pour la réponse , évidente pour certains, bien utile aux débutants