tri + liste validation

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

supercrapaud

XLDnaute Occasionnel
Bonjour à tous !

J'ai besoin de vos lumières pour établir un tri par macro. Dans l'onglet que j'avais, je modifiais une combobox ce qui me permettait de trier un tableau. La combobox reprenait les titres des colonnes de mon tableau. J'ai modifié la feuille, remplacé la combobox intégrée dans la feuille pour une liste déroulante avec les mêmes données que la combobox. Le problème :

Auparavant, je triais le tableau en fonction de la valeur de la combobox. Là je voulais faire de même avec la liste déroulante mais je n'y arrive pas. J'ai essayé d'enregistrer une macro pour faire le tri et de modifier mais rien n'y fait.

Alors j'ai envie de dire A L'AIDE !!! En vous remerciant.
 

Pièces jointes

Re : tri + liste validation

Bonsoir Supercrapaud,

Apparemment, après plusieurs test, le .Offset() n'est pas supporté pour la Key
Essaye avec ce code
Code:
Private Sub ComboBox1_Change()
  Dim RngKey As String
  'On Error GoTo gestionerreur
  m = ComboBox1.ListIndex
  RngKey = Range("B5").Offset(0, m).Address
  ActiveSheet.Range("recap_globale2").Sort Key1:=Range(RngKey), Order1:=xlAscending, Header:=xlNo, _
                                           OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  'gestionerreur:
  'Select Case Err.Number
  '    Case 1004
  '        MsgBox ("Vous ne pouvez pas effectuer de tri car la liste ne contient aucune donnée. Vous devez au préalable créer une fiche de stock pour pouvoir utiliser cette commande.")
  'End Select
End Sub

A+
 
Dernière modification par un modérateur:
Re : tri + liste validation

Salut

Si... ta liste de validation est en G2, essaie dans le module de la feuille :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$2" Then
    Range("B5:J6").Sort Cells(4, Rows(4).Find(Target).Column), 1
  End if
End Sub
 
Re : tri + liste validation

Bonjour a vous tous et merci pour votre réponse aussi tard.
Je pense utiliser la solution de Si... J'esperais eviter la fonction Find dans la liste de titre et juste utiliser la valeur dans la cellule comme critere de tri. Comme on utilise le nom du titre d'une colonne lorsque l'on trie un tableau avec une ligne d'en-tête. Apparemment ce n'est pas possible. Je vais tester ça aujourd'hui. En tout cas Merci d'avour repondu aussi vite.
 
Re : tri + liste validation

Bonjour a vous tous et merci pour votre réponse aussi tard.
Je pense utiliser la solution de Si... J'esperais eviter la fonction Find dans la liste de titre et juste utiliser la valeur dans la cellule comme critere de tri. Comme on utilise le nom du titre d'une colonne lorsque l'on trie un tableau avec une ligne d'en-tête. Apparemment ce n'est pas possible. Je vais tester ça aujourd'hui. En tout cas Merci d'avour repondu aussi vite.
 
Re : tri + liste validation

Re-bonjour.

Ca ne marche toujours pas !!! En fait la plage que j'avais créée pour pouvoir l'utiliser avec la combobox ne semble pas pouvoir être utilisée avec cette liste de validation. J'ai essayé avec la solution de Si... puisque que je souhaite supprimer au maximum les combobox mais lorsque je remplace la plage inscrite par une page nommée, cela me met une erreur 1004...

Si quelqu'un a une solution je suis preneur. En vous remerciant.
 
Re : tri + liste validation

salut tous

pour Bruno : ta proposition concerne une liste déroulante (Combobox) et non une Liste de Validation.

Si... ta liste, nommée ou pas, n'est pas identique à celle des titres choisis tu auras cette erreur !

Pour le vérifier, développe un peu plus :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Titre As Range
  If Target.Address = "$G$2" Then Exit Sub
  Set Titre = Rows(4).Find(Target)
  If Not Titre Is Nothing Then
    Range("B5:J6").Sort Titre, 1
  Else
    MsgBox "le tri ne peut se faire car le titre n'existe pas !"
  End If
End Sub
 
Re : tri + liste validation

Salut Si,

Merci de tes indications 😛 car il est vrai que je ne savais pas faire la différence
entre une Combobox et une liste de validation zrozir29.gif

Dans le fichier du post #1 figure une Combobox j'ai simplement lu et relu trop vite la demande de supercrapaud
et je suis donc resté sur l'idée de la combobox (qui ne fonctionnait pas chez moi)

Voili, voilà encore désolé ... je n'ai rien dis 😱

Ceci dis, mon code comme il est fait, ne plantera pas puisque je ne gère pas les noms des colonnes
mais le numéro de celles-ci par rapport à la ligne du libellé choisi 😉

Bonne soirée
 

Pièces jointes

  • zrozir29.gif
    zrozir29.gif
    1.9 KB · Affichages: 131
  • zrozir29.gif
    zrozir29.gif
    1.9 KB · Affichages: 131
Re : tri + liste validation

Bonjour,

Merci pour cette solution. Cependant je me demande pourquoi quand je mets une plage avec un nom prédéfini (voir dans le fichier). Mais alors que ça marche avec la combobox ça veut pas avec la liste... Une idée pour ça ?
 
Re : tri + liste validation

Salut Supercrapaud

La solution de Si... fonctionne sauf que le test n'est pas correcte, le bon code est
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Titre As Range
  If Target.Address = "$G$2" Then
    Set Titre = Rows(4).Find(Target)
    If Not Titre Is Nothing Then
      Range("B5:J6").Sort Titre, 1
    Else
      MsgBox "le tri ne peut se faire car le titre n'existe pas !"
    End If
  End If
End Sub

A+
 
- 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
40
Affichages
1 K
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
296
Réponses
4
Affichages
298
  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Retour