Macro pour Trier un tableau avec Sélection étendue

Bonjour,

j'essaie de faire une macro pour trier (ordre alphabétique) un tableau sur une colonne, avec sélection étendue

afin de garder la cohérence entre les lignes.

J'ai bien entendu regarder le code que me donne l'enregistreur de Macro,

toutefois j'aimerai que la colonne à trier soit une variable.

Je vous met mon fichier exemple, avec la macro générée par l'enregistreur.

Dans cette exemple, je souhaite trier la colonne C.

1'092tri-classeur.xlsm (15.58 Ko)

Bonjour

Avec une macro de Dan ; sélectionner la cellule du titre de la colonne à trier.

Amicalement

Nad

Merci, j'avais vu cette macro dans un autre sujet,

les différences avec ce que je souhaite :

  • Ne pas lancer cette macro sur évènement, car cette tache de tri est une petite partie d'une plus grande macro exécutée par appuie sur un bouton. --> Je pense qu'il me suffit d'écrire la valeur "col" (colonne à trier) en début de macro plutot que d'utiliser la sélection actuelle.
  • Le tableau sur lequel je souhaite faire ce tri ne sera pas toujours de même dimension,
j'aimerai donc que la macro étende la sélection au classeur par un autre moyen que lui donner sa plage "en dur" (Range("A2:E"...)

En résumé simplifié, j'aimerai dire "Classe le tableau par la colonne X", et la macro tri la colonne X par ordre alphabétique tout en étendant la sélection aux colonnes adjacentes pour garder la cohérence de chaque ligne.

Bonjour à tous,

Le tableau sur lequel je souhaite faire ce tri ne sera pas toujours de même dimension,

Il faudrait au moins que la ligne d'en-tête soit sur la même ligne sur tous les tableaux,

peux-tu garantir çà ?

Bonjour Nad

Amicalement

Claude

Actuellement, mon tableau n'a pas d'en-tête, mais je peux garantir que ce tableau commencera toujours à la 1° ligne de la feuille excel.

Ca convient ou l'en-tête est nécéssaire ? (je ne préfererai pas, car ce tableau que je veux trier est généré par une macro)

re,

on considère ici, qu'il n'y a pas d'en-têtes et que la plage commence en A1

1) la colonne A doit être remplie

2) sur ligne 1, la dernière colonne doit être remplie

-------- tu positionne le curseur n'importe où sur la colonne à trier -------

Sub Tri()
Dim Lg%, dCl As Byte, Ct As Byte, Plg As Range
'Macros par Claude Dubois pour "piratman" E-P le 01/04/10
    Lg = Range("A65536").End(xlUp).Row
    dCl = Columns(200).End(xlToLeft).Column
    Ct = ActiveCell.Column 'clé de tri
    Set Plg = Range(Cells(1, 1), Cells(Lg, dCl))
    '---- tri ---
    Plg.Sort Key1:=Cells(1, Ct), Order1:=xlAscending, _
    Header:=xlNo, OrderCustom:=1, MatchCase:=False
End Sub

Amicalement

Claude

1'333tri-variable.zip (11.71 Ko)

C'est nickel Dubois, et Merci à tous pour l'aide !

Rechercher des sujets similaires à "macro trier tableau selection etendue"