Autres Tri simple vba

aredo

XLDnaute Occasionnel
bonjour,

Petite demande en pièce jointe, le tri n'est pas assez précis.
merci de bien vouloir me corriger le vba.
excel 2007 et 2016
 

Pièces jointes

  • tri.xlsm
    17.6 KB · Affichages: 7

aredo

XLDnaute Occasionnel
Ce ne sont pas des divisions. Simplement des références, on peut remplacer le slash par un tiret.
Le fichier d'origine comporte neuf colonnes dont une masquée, des chiffres , du texte et des formules .
Le souci étant de classer dans l'ordre établi dans le fichier joint.
 

Pièces jointes

  • tri.xlsm
    17.7 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonsoir.
Plus rapide comme ça :
VB:
Private Sub CommandButton1_Click()
   Application.ScreenUpdating = False
   Range("C3:C9").FormulaR1C1 = "=LEFT(RC1,SEARCH(""/"",RC1)-1)*10000+MID(RC1,SEARCH(""/"",RC1)+1,4)*1"
   Range("A3:C9").Sort Key1:=Range("c3"), Order1:=xlAscending
   Range("C3:C9").ClearContents
   End Sub
Private Sub CommandButton2_Click()
   Application.ScreenUpdating = False
   Range("C3:C9").FormulaR1C1 = "=LEFT(RC1,SEARCH(""/"",RC1)-1)*10000+MID(RC1,SEARCH(""/"",RC1)+1,4)*1"
   Range("A3:C9").Sort Key1:=Range("c3"), Order1:=xlDescending
   Range("C3:C9").ClearContents
   End Sub
ou comme ça :
VB:
Private Sub CommandButton1_Click()
   Application.ScreenUpdating = False
   ModNumTemp
   Range("A3:C9").Sort Key1:=Range("c3"), Order1:=xlAscending
   Range("C3:C9").ClearContents
   End Sub
Private Sub CommandButton2_Click()
   Application.ScreenUpdating = False
   ModNumTemp
   Range("A3:C9").Sort Key1:=Range("c3"), Order1:=xlDescending
   Range("C3:C9").ClearContents
   End Sub
Private Sub ModNumTemp()
   Dim T(), L As Long, TSpl() As String
   T = [A3:A9].Value
   For L = 1 To UBound(T, 1)
      TSpl = Split(T(L, 1), "/")
      T(L, 1) = TSpl(0) * 10000 + TSpl(1)
      Next L
   [C3:C9].Value = T
   End Sub
 

Discussions similaires

Réponses
9
Affichages
267
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
319
Réponses
16
Affichages
291

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87