Tri de gauche à droite

karakoman1

XLDnaute Occasionnel
Bonjour le forum,

J'aurais voulu adapter une macro que notre amis "HABITUDE" m'a propose. Un très beau travail d'ailleurs!!
Je cherche juste la manière de pouvoir trier le résultat de cette macro. C'est à dire, trier les données des colonnes B,C,D par ordre croissant mais de gauche à droite.
Si une âme charitable pouvait y jeter un oeil ;-) ce serait sympa.

Bonne journée à tous
 

Pièces jointes

  • Extraction.xlsm
    26.6 KB · Affichages: 54
  • Extraction.xlsm
    26.6 KB · Affichages: 72
  • Extraction.xlsm
    26.6 KB · Affichages: 74

Papou-net

XLDnaute Barbatruc
Re : Tri de gauche à droite

Bonjour karakoman1,

Voici ta macro complétée d'une procédure de tri nommée TriColonnes.

Je l'ai scindée de la procédure principale afin d'en améliorer la compréhension mais tu peux bien entendu l'intégrer à Sub CEssaie_Click() à la place de la dernière ligne (Call TriColonnes).

Bonne journée.

Cordialement.

Code:
Private Sub CEssaie_Click()
    Dim i As Long, j As Long
    Dim vehicule As String
    Dim no() As valeurs 'déclaration d'un vecteur de type défini dans MODULE1
    Dim v, texte As Range, car As Characters
    
    'Efface les données de la feuille 2
    With Sheets("Feuil2"): .Range(.Range("A2"), .Range("A2").End(xlDown)).Resize(, 10).ClearContents: End With
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row 'Pour chaque valeur de la feuille en cour.
       ...
       ...
       ...
    Next i
Call TriColonnes
End Sub

Sub TriColonnes()
Dim z As Range, Cel As Range, nCol As Byte

With Feuil2
  nCol = .Rows(2).End(xlToRight).Column
  For Each Cel In .Range("A2:A" & Rows.Count).SpecialCells(xlCellTypeConstants)
    Set z = .Range("B" & Cel.Row & ":D" & Cel.Row)
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=z, _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With .Sort
      .SetRange z
      .Header = xlGuess
      .MatchCase = False
      .Orientation = xlLeftToRight
      .SortMethod = xlPinYin
      .Apply
    End With
  Next
End With
End Sub
 

karakoman1

XLDnaute Occasionnel
Re : Tri de gauche à droite

Bonjour Papou-net,
Ca marche super. Un grand merci à toi pour le travail et ta disponibilité.
J'aurais encore une question.
Je n'arrive pas à mettre un bouton de commande dans la feuille 2 pour y associer la macro complete. Quand je crée le bouton et que je veux lui associer la macro, je trouve toute mes macros sauf celle la. Je ne vois pas ou est le probleme.
Pourrais-tu m'expliquer ce que je ne fais pas correctement?

Merci d'avance
 

Papou-net

XLDnaute Barbatruc
Re : Tri de gauche à droite

Bonsoir karakoman1,

Si tu veux effectuer le tri au moyen d'un bouton créé sur Feuil2, tu as deux solutions:

- soit tu cites le nom de la feuille qui contient la procédure de tri:

Code:
Private Sub CommandButton1_Click()
Call Feuil1.TriColonnes
End Sub

- soit tu transfères la macro TriColonnes dans Module1:

Code:
Private Sub CommandButton1_Click()
Call TriColonnes
End Sub

En effet, si les macros ne sont pas dans des modules de code, il faut alors citer explicitement le nom du module qui les contient. Une bonne habitude consiste d'ailleurs à mentionner le nom du module quel qu'il soit, ce qui simplifie la relecture du code en cas de problème.

Dans les deux cas, tu peux te dispenser de mentionner le mot-clé Call.

Bonne soirée.

Cordialement.
 

job75

XLDnaute Barbatruc
Re : Tri de gauche à droite

Bonjour karakoman1, Papou-net,

Je n'arrive pas à mettre un bouton de commande dans la feuille 2 pour y associer la macro complete. Quand je crée le bouton et que je veux lui associer la macro, je trouve toute mes macros sauf celle la.

La macro Private Sub CEssaie_Click() du post #2 suppose que le bouton est un bouton ActiveX nommé "CEssaie".

Cette macro doit alors être placée dans le code de la feuille, elle n'apparaît pas dans la liste des macros.

Si vous créez un bouton Formulaire il faut enlever Private pour qu'elle apparaisse dans la liste des macros.

Il vaut mieux alors mettre tout le code dans Module1.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 325
Messages
2 087 304
Membres
103 513
dernier inscrit
adel.01.01.80.19