XL 2019 Résolu - Selection et tri par macro.

  • Initiateur de la discussion Initiateur de la discussion Paulle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Paulle

XLDnaute Occasionnel
Bonsoir,

J'ai réussi à faire une macro pour la sélection qui correspond à ce que je veux à condition de ne pas avoir de cellules vides dans l'avant dernière colonne, ici AJ.

Ensuite je voudrai que le tri se fasse sur l'avant dernière colonne de la sélection Cas 1 ici AI.

Merci pour votre aide.

Ce que je fais actuellement.

Capture1.JPG
 

Pièces jointes

Solution
Oh, triez les ligne entières alors :
VB:
.SetRange ActiveSheet.Rows(5).Resize(ActiveSheet.[A1000000].End(xlUp).Row - 4)
Votre exemple n'allait que jusqu'a la colonne AW, les 2 1ère colonnes des trois derniers triplets étant vides.
Ou sinon mettez tout ça sous forme de tableau et triez celui-ci.
Bonjour.
Et en spécifiant Key:=Selection.Columns(Selection.Columns.Count - 1)
et d'ailleurs aussi .SetRange Selection ça n'irait pas ?
Édition: Les instruction du début sont à supprimer bien entendu: on repart de la sélection laissée par la Sub SelectionPlage.
Remarque: Si tout devait être fait dans une seule macro on pourrait éviter de sélectionner quoi que ce soit et utiliser à la place des variables As Range.
 
Dernière édition:
Je viens de faire ça :
VB:
Sub TrierAvDCol()
   With ActiveSheet.Sort
      .SortFields.Clear
      .SortFields.Add Key:=ActiveSheet.[XFD2].End(xlToLeft)(3, 1), _
         SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
      .SetRange ActiveSheet.[A5:AW5].Resize(ActiveSheet.[A1000000].End(xlUp).Row - 4)
      .Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom: .SortMethod = xlPinYin
      .Apply
      End With
   End Sub
 
Oh, triez les ligne entières alors :
VB:
.SetRange ActiveSheet.Rows(5).Resize(ActiveSheet.[A1000000].End(xlUp).Row - 4)
Votre exemple n'allait que jusqu'a la colonne AW, les 2 1ère colonnes des trois derniers triplets étant vides.
Ou sinon mettez tout ça sous forme de tableau et triez celui-ci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
468
Réponses
9
Affichages
555
  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
347
Retour