VBA, un petit peu d'aide SVP
onra
-
onra -
onra -
Bonjour,
Je trevail sous VBA avec EXcel.
J'ai un code qui tri un taleau par ordre croissant. Ca marche très bien jusqu'à 9, mais 10 se classe avant.
Concrètement ca me donne ca:
Lot 10
Lot 11
Lot 12
Lot 8
Lot1
Lot1
Lot10
lot12
Lot2
Vous pouvez voir que j'ai un autre problème: selon que l'onsaisisse Lot1 ou Lot 1; c'est pas pareil. Cela parait assez logique, mais je ne sais pas comment résoudre le problème. Du style, quoi que saisisse l'utilisateur, on obtiendrait "Lot 1".
Voici mon de code:
Sub TriTab()
Dim nbligne As Integer
nbligne = Worksheets("Recap Marché").Cells.SpecialCells(xlCellTypeLastCell).Row
Range("A3:K" & nbligne).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
End Sub
Merci d'avance....
Je trevail sous VBA avec EXcel.
J'ai un code qui tri un taleau par ordre croissant. Ca marche très bien jusqu'à 9, mais 10 se classe avant.
Concrètement ca me donne ca:
Lot 10
Lot 11
Lot 12
Lot 8
Lot1
Lot1
Lot10
lot12
Lot2
Vous pouvez voir que j'ai un autre problème: selon que l'onsaisisse Lot1 ou Lot 1; c'est pas pareil. Cela parait assez logique, mais je ne sais pas comment résoudre le problème. Du style, quoi que saisisse l'utilisateur, on obtiendrait "Lot 1".
Voici mon de code:
Sub TriTab()
Dim nbligne As Integer
nbligne = Worksheets("Recap Marché").Cells.SpecialCells(xlCellTypeLastCell).Row
Range("A3:K" & nbligne).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
End Sub
Merci d'avance....
Configuration: Windows 2000 Internet Explorer 6.0
1 réponse
-
Bonjour.
Le problème, c'est que tu fais un tri sur des chaînes de caractères, pas sur des nombres.
La solution la plus simple, c'est de saisir dans ta colonne (on va dire que c'ets la colonne A) uniquement les nombres.
Ensuite, tu sélectionnes la colone A, et tu appliques un format :
Menu Format->Cellule
Dans l'onglet Nombres, Catégorie "Personnalisé"
Dans Type, tu tapes Lot #
=> Au niveau de l'affichage, tu auras bien "Lot 1", mais pour Excel, il gérera des nombres...