Macro pour Tri

R

René

Guest
Bonjour,

Eh ben j'avais pas vu que mon fichier faisait plus de 50 Ko
je l'ai 'dégrossi' et ça doit être ok.
Donc ..je reformule:

J'ai un 'gros' problème...
mon tri pour ma colonne N°FR ne fonctionne pas dès
que j'ai le Numéro à trois digit (par exemple 100)??!!

merci pour votre attention et bonne journée

René
[file name=Base1_20050822075003.zip size=8229]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Base1_20050822075003.zip[/file]
 

Pièces jointes

  • Base1_20050822075003.zip
    8 KB · Affichages: 9

ChTi160

XLDnaute Barbatruc
Salut René

bonjour le Forum

une Solution peut être, mettre Un Zero devant tes chiffre <100
exemple 009,033
résultat du tri
[ol][li]022/SE/2006[/li]
[li]033/SE/2012[/li]
[li]044/SE/2012[/li]
[li]055/SE/2011[/li]
[li]055/SE/2012[/li]
[li]111/SE/2005[/li][/ol]

et la tu obtiens ce que tu désires

Bonne Journée

Message édité par: Chti160, à: 22/08/2005 08:10
 

Dan

XLDnaute Barbatruc
Bonjour,

:sick: Je ne vois pas pourquoi tu ouvres un nouveau fil sur ce sujet sachant que 1/2 heure avant tu postes le même fichier Lien supprimé. Bonjour la suite de ce fil !

Faut être patient René sinon ce genre de fil ne fait qu'encombrer le forum et ne le sert pas non plus.

Merci de faire un petit tour par ICI avant de poster la prochaine fois.
 

ChTi160

XLDnaute Barbatruc
Salut Dan effectivement cela n'est pas correct mais je ne l'ai pas vu sinon je n'aurais pas manqué de le faire remarquer à notre ami

voici une Macro qui ajoute les 0 si <=9 chiffres deux Zéros et < 11 mais >9 un Zéro

Code:
Sub tri()
'
' tri Macro
' Macro enregistrée le 22.08.2005 par SIG
Dim cel As Range
Dim derlgn As Long
derlgn = Range('a65536').End(xlUp).Row
For Each cel In Range('A6:A' & derlgn)

If Len(cel) <= 9 Then cel = '00' & cel.Value: GoTo suite
If Len(cel) < 11 Then cel = '0' & cel.Value 
suite:
Next
Range('A6:B' & derlgn).Select
    Selection.Sort Key1:=Range('A6'), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Dan, Jean Marie, René

Alors comme ça René n'est pas XLD-Compliant ?

Alors voumfré 100 lignes : 'Je ne Posterai Plus de Doublons sur XLD !'

Quand ce sera fait tu pourras copier une fois ceci dans ton Module, car c'est plus compliqué qu'il n'y parait ce genre de questions....

Sub TriAlgo()
Dim TabDataBrut As Variant
Dim TabDataSorted() As String
Dim ValNum As Integer
Dim i As Integer, ii As Integer, x As Integer, j As Integer
Dim Tmp1 As String, Tmp2 As String, Tmp3 As String
Dim C As Byte


&nbsp; &nbsp;
With Sheets('Feuil1')
&nbsp; &nbsp; &nbsp; &nbsp; TabDataBrut = Range(.Range('A6'), .Range('B65536').End(xlUp))
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;
For i = 1 To UBound(TabDataBrut)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ValNum = Val(TabDataBrut(i, 1))
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
ReDim Preserve TabDataSorted(3, x)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TabDataSorted(0, x) = ValNum
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TabDataSorted(1, x) = TabDataBrut(i, 1)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TabDataSorted(2, x) = TabDataBrut(i, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x = x + 1
&nbsp; &nbsp; &nbsp; &nbsp;
Next
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;
For i = LBound(TabDataSorted, 2) To UBound(TabDataSorted, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For j = LBound(TabDataSorted, 2) + ii To UBound(TabDataSorted, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If CInt(TabDataSorted(0, i)) > CInt(TabDataSorted(0, j)) Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Tmp1 = TabDataSorted(0, j): Tmp2 = TabDataSorted(1, j): Tmp3 = TabDataSorted(2, j)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TabDataSorted(0, j) = TabDataSorted(0, i): TabDataSorted(1, j) = TabDataSorted(1, i): TabDataSorted(2, j) = TabDataSorted(2, i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TabDataSorted(0, i) = Tmp1: TabDataSorted(1, i) = Tmp2: TabDataSorted(2, i) = Tmp3
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next j
&nbsp; &nbsp; &nbsp; &nbsp; ii = ii + 1
&nbsp; &nbsp; &nbsp; &nbsp;
Next i
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;
For i = LBound(TabDataSorted, 2) To UBound(TabDataSorted, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For C = 1 To 2
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i + 1 + 5, C) = TabDataSorted(C, i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next C
&nbsp; &nbsp; &nbsp; &nbsp;
Next i
&nbsp; &nbsp;
End With

End Sub

Bonne Journée
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 22/08/2005 08:41
 

Discussions similaires

P
Réponses
0
Affichages
774
Palemeilleur
P
A
  • Question
Tri
Réponses
11
Affichages
1 K
G
Réponses
1
Affichages
1 K
P
Réponses
2
Affichages
1 K
Palemeilleur
P
R
Réponses
3
Affichages
1 K
R
P
Réponses
0
Affichages
812
pascal
P
A
  • Question
Tri
Réponses
3
Affichages
1 K
R
Réponses
5
Affichages
948

Statistiques des forums

Discussions
312 920
Messages
2 093 639
Membres
105 768
dernier inscrit
Luc Juvénal YAMBASSA