• Initiateur de la discussion Initiateur de la discussion breeze
  • 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 !

breeze

XLDnaute Occasionnel
Bonjour à tous,
Je suis a chercher une méthode pour rendre ma macro variable.
Je m'explique: J'utilise cette macro

'
Range("D8😀27").Select
Selection.Sort Key1:=Range("D8"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Cependant la plage ,dans ce cas (d8:d27), n'est pas tourjours la même
Elle peut être aussi (d1:d7) ou encore (d28:d33) etc ça dépend des fois


Peut on faire une macro ou je pourrais sélectionner ma plage avec la souris et ensuite cliquer sur ma macro.
La macro se trouverait à commencer à "Selection.sort Key1:=..."

Je ne sais pas si vous comprenez.

J'attend de vos nouvelles.

Merci!!!
 
Re : Macro trier

Salut, j'ai profité de ma pause au travail pour te pondre cette solution :

dans un module :
Code:
Option Explicit
Public glue As String 'déclare ta variable publique pour qu'elle soit applicable partout

Sub allo()
glue = "faux" 'remet ta variable à faux
End Sub

dans ta feuille concernée :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If glue = "vrai" Then
Selection.Sort Key1:=Range("D8"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Else
Exit sub
End If
End Sub 'quand glue est vrai, la macro s'exécute à tout changement de sélection. Sinon rien.

Dans ton bouton ou ton userform :
Code:
Private Sub CommandButton1_Click()
glue = "vrai"
Application.OnTime Now + TimeValue("00:00:05"), "allo" 'dans 5 secondes, allo s'exécute et remet glue à faux, change le pour ce que tu veux comme délais
End Sub

Tu déclares donc la variable glue publique pour qu'elle soit applicable partout. Lorsque tu clique le bouton, cette variable est vrai puis se met à faux 5 secondes plus tard (tu peux changer le 5 pour ce que tu veux). Lorsque cette variable est vrai, si tu fais un changement de sélection sur ta feuille, trier s'exécute. Voilà, amuse toi 😉
 
Dernière édition:
Re : Macro trier

Je te remercie pour ta réponse mais ça ne marche pas. Il faut dire que je suis pas un pro, mais ta premiere idée d'enlever la premiere ligne me donne un message d'erreur et la deuxieme idee ne fait rien
Merci quand meme!!
 
Re : Macro trier

Bonjour à tous
Code:
[COLOR="DarkSlateGray"][B]Sub trier_la_sélection_selon_la_colonne_active()
   On Error Resume Next
   Selection.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:=xlGuess, _
      OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
      DataOption1:=xlSortNormal
   On Error GoTo 0
End Sub[/B][/COLOR]
permet de trier un plage quelconque de cellules contigües avec la colonne active comme clé.
On n'est donc pas obligé de trier sur la première colonne.
La gestion d'erreur n'est là que pour éviter une erreur si l'on a sélectionné un plage réduite à une seule cellule vide, ou une plage discontinue.​
ROGER2327
#2161
 

Pièces jointes

- 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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
747
Réponses
17
Affichages
1 K
Réponses
5
Affichages
559
B
  • Question Question
Réponses
2
Affichages
777
Benjy51190
B
Réponses
11
Affichages
969
L
Réponses
9
Affichages
1 K
Retour