Tri personnalisé de la sélection actuelle

Résolu
Fullreyny -  
 Fullreyny -
Bonjour,

Je cherche un moyen pour réaliser une macro permettant de trier selon la colonne F toute les lignes en cours de sélection.

exemple :
Je sélectionne les lignes ("2649:2674"), je clique sur mon bouton et hop, le tri ce fait entre 2649 et 2674, (qu'importe les lignes sélectionnées)

En gros je cherche une variable pour la sélection

Sub Macro7()
'
' Macro7 Macro
'

'
ActiveWorkbook.Worksheets("647515").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("647515").Sort.SortFields.Add Key:=Range( _
"F2649:F2674"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("647515").Sort
.SetRange Range("A2649:AD2674")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Si quelqu'un peu m'aider.
Ciao

11 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Pour trier la plage sélectionnée selon la colonne F

Public Sub TrierSelection()
Dim PremLi As String, plage As Range
Set plage = Selection
PremLi = plage.Cells(1, 0).Row
plage.Sort key1:=Range("F" & PremLi)
End Sub

Cdlmnt
0
Fullreyny
 
Bonjour et merci de vous intéresser au sujet.
J'ai essayé votre texte, mais la macro bug sur la ligne :
PremLi = plage.Cells(1, 0).Row
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
1. As tu sélectionné ta plage avant de lancer la macro?

2. Essaies comme ceci

Public Sub TrierSelection()
Dim PremLi As String, plage As Range
Set plage = Range(Selection.Address)
PremLi = plage.Cells(1, 0).Row
plage.Sort key1:=Range("F" & PremLi)
End Sub


Cdlmnt
0
Fullreyny
 
Bonjour.
J'ai essayé en sélectionnant les lignes, en sélectionnant uniquement une plage de cellules, mais rien n'y fait, Bug sur la ligne :

PremLi = plage.Cells(1, 0).Row

Cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Chez moi ça fonctionne
https://www.cjoint.com/?3CclxeICMnL
Si ça ne va toujours pas, peux tu envoyer la partie concernée de ton fichier au format excel 2003 (macro comprise) sur cjoint.com et joindre le lien obtenu à ton prochain message

Cdlmnt
0
Fullreyny
 
La macro fonctionne effectivement en sélectionnant uniquement de E à F.
Moi je veux sélectionner les lignes.
Exemple : de ligne 1 à 39 sur le tableau que tu à joint.
Et comme pour moi si tu essais sur tu tableau la macro bug.

Si je peux éviter les doc joints pour le moment, c'est mieux.
Cdlt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Modifies cette ligne
PremLi = plage.Cells(1, 1).Row

Cdlmnt
0
Fullreyny
 
Génial.
ça marche nickel.
Chapeau bas.
Merci beaucoup
0
Fullreyny
 
Juste une petite information en plus si tu sais me donner la réponse CCM81.

Quelle serait la macro si je souhaite un deuxième niveau de tri personnalisé.

exemple trier par F en premier et par E en deuxième niveau. (comme avec le tri personnalisé)
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
plage.Sort Key1:=Range("F" & PremLi), Key2:=Range("E" & PremLi)

Cdlmnt
0
Fullreyny
 
Merci infiniment. je vais gagner du temps grâce à toi.
@+
0