Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trier un tableau

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

V

Vario29

Guest
Salut,

Une question à laquelle je ne sais pas répondre :

Peut-on trier un tableau par rapport à une valeur dans une cellule ?

Exemple : Si je sélectionne Quimper par l’intermédiaire de la liste déroulante il filtre la colonne A du tableau ?

Merci ;
 

Pièces jointes

Re : Trier un tableau

Bonjour le Forum,
Bonjour Vario29, JHA, UJAP;

Pour m'auto former et surtout pour faire rire les VBAistes (les vrais j'entend ) un essai par un bricolage VBA


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

If Not Application.Intersect(Target, Range("B1")) Is Nothing Then
   For L = 4 To 20
 
    For Each cel In Range("A" & L)
        If Range("A" & L).Value <> Range("B1").Value And Range("A" & L).Value <> "" Then Rows(L).EntireRow.Hidden = True
       
        If Range("A" & L).Value = Range("B1").Value Then Rows(L).EntireRow.Hidden = False
        
        If Range("B1").Value = "" And Range("A" & L).Value <> "" Then Rows(L).EntireRow.Hidden = False
        
        Next cel

   Next L
 End If
 
Application.ScreenUpdating = True

End Sub
Voir fichier joint

Jocelyn
 

Pièces jointes

Dernière édition:
Re : Trier un tableau

re,

Alors les explications (une nouvelle couche de rigolade

cette partie sert a ne pas voir ce qui se passe mais seulement le résultat :

Application.ScreenUpdating = False

ensuite la macro ne se déclenche que si l'on intervient sur la cellule B1 :

If Not Application.Intersect(Target, Range("B1")) Is Nothing Then

ensuite pour les ligne de 4 a 20

For L = 4 To 20

pour chaque cellule plage For Each cel In Range("A" & L) défini par colonne A et L ligne sur laquelle on se trouve et qui commence ligne 4

si la valeur de la cellule est différente de B1 et que la cellule n'est pas vide If Range("A" & L).Value <> Range("B1").Value And Range("A" & L).Value <> "" alors on cache la ligne Then Rows(L).EntireRow.Hidden = True

pour le cas ou une vligne aurait été cachée avant et que l'on change la valeur de B1 pour réafficher les lignes cacher correspondant a la nouvelle valeur de B1 si la valeur de la cellule en A est egale a B If Range("A" & L).Value = Range("B1").Value alors les lignes ne sont pas cachées Then Rows(L).EntireRow.Hidden = False

et si B1 est vide f Range("B1").Value = "" And Range("A" & L).Value <> "" alors on réaffiche toutes les lignes dont les cellules de la A ne sont pas vide Then Rows(L).EntireRow.Hidden = False

voila j'espère que c'est clair

Jocelyn
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
266
Réponses
3
Affichages
177
Réponses
37
Affichages
1 K
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
223
Réponses
2
Affichages
240
Réponses
20
Affichages
630
Réponses
4
Affichages
229
  • Question Question
Microsoft 365 Remplissage auto
Réponses
14
Affichages
380
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…