VBA, un petit peu d'aide SVP

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....
A voir également:

1 réponse

macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention   89
 
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...
0
onra
 
Bonjour,
merci pour ton coup de main.
Je crois que je vais pencher pour ta solution même si j'aurais préférer un code histoire que l'utilsateur puisse rentrer son lot sous n'importe quelle forme.

Bonne continuation

A plus
0