Filtre par valeur de cellule.
Résolu
megatronnbjja
Messages postés
67
Statut
Membre
-
megatronnbjja Messages postés 67 Statut Membre -
megatronnbjja Messages postés 67 Statut Membre -
Bonjour,
Grace à la macro suivante je filtre mon tableau en fonction des valeurs qui sont renseignées dans la ligne 1.
Le code sur le filtre fonctionne puisque dans un premier temps je l'avais écris pour chaque colonne de mon tableau.
J'ai ensuite voulu améliorer le tout grâce à une boucle For mais la les ennuis commencent.
le débogueur me dit: "Next sans For"
Si quelqu'un trouve l'erreur ou peut me donner un conseil, merci d'avance.
Megatronnbjja
Grace à la macro suivante je filtre mon tableau en fonction des valeurs qui sont renseignées dans la ligne 1.
Le code sur le filtre fonctionne puisque dans un premier temps je l'avais écris pour chaque colonne de mon tableau.
J'ai ensuite voulu améliorer le tout grâce à une boucle For mais la les ennuis commencent.
le débogueur me dit: "Next sans For"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dercol As Integer
dercol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column 'trouve la dernière colonne de la ligne
For i = 1 To dercol
If Not Intersect(Target, Range("A1", Cells(1, dercol))) Is Nothing Then
Select Case Target.Address
Case Cells(1, i)
If Target = "" Then
Range("$A$2:$AB$3000").AutoFilter Field:=i
Else
Range("$A$2:$AB$3000").AutoFilter Field:=i, Criteria1:="*" & Cells(1, i) & "*"
End If
Next i
End Select
End If
End Sub
Si quelqu'un trouve l'erreur ou peut me donner un conseil, merci d'avance.
Megatronnbjja
A voir également:
- Filtre par valeur de cellule.
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Filtre whatsapp - Accueil - Messagerie instantanée
- Excel cellule couleur si condition texte - Guide
- Proteger cellule excel - Guide
- Filtre teams - Accueil - Visio
2 réponses
Bonjour
au moins une erreur
Ton dernier End if doit être placé avant Next i
ou peut être mieux
Ton if not intersect .... devrait être placé avant ta boucle For i ...
bonne suite
au moins une erreur
Ton dernier End if doit être placé avant Next i
ou peut être mieux
Ton if not intersect .... devrait être placé avant ta boucle For i ...
bonne suite
Bonjour,
J'ai écrit un code qui fonctionne. Dès que l'on modifie une valeur en ligne 9, le filtre se met en place.
J'ai écrit un code qui fonctionne. Dès que l'on modifie une valeur en ligne 9, le filtre se met en place.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dercol As Integer, i As Long, derlig As Long
dercol = Cells(10, Cells.Columns.Count).End(xlToLeft).Column 'défini la dernière colonne remplie en ligne 10
derlig = Range("A" & Rows.Count).End(xlUp).Row 'défini la dernière ligne remplie en colonne A
If Not Intersect(Target, Range("A9", Cells(9, dercol))) Is Nothing Then 'Condition : si modification d'une cellule en ligne 9
For i = 1 To dercol
Select Case Target.Address
Case Cells(9, i).Address 'on regarde ce qu'il se passe en ligne 9
If Target = "" Then 'si la cellule est vidée
Range("A10", Cells(derlig, dercol)).AutoFilter Field:=i 'critère de filtre: ""
Else
Range("A10", Cells(derlig, dercol)).AutoFilter Field:=i, Criteria1:="*" & Cells(9, i).Value & "*" 'si la cellule contient une valeur alors le critère de filtre est: valeur de la cellule
End If
End Select
Next i
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim dercol As Long, i As Long dercol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column 'trouve la dernière colonne de la ligne If Not Intersect(Target, Range("A1", Cells(1, dercol))) Is Nothing Then For i = 1 To dercol Select Case Target.Address Case Cells(1, i) If Target = "" Then Range("$A$2:$AB$3000").AutoFilter Field:=i Else Range("$A$2:$AB$3000").AutoFilter Field:=i, Criteria1:="*" & Cells(1, i) & "*" End If End Select Next i End If End Subbon courage
Voici le lien d'un classeur qui reflète ce que je veux faire. J'ai essayé les modif que tu m'as indiquées. Aucune erreur ne s'affiche cependant aucun filtre ne s'applique....
je continue de plancher. Si tu as de nouvelles idées, je suis preneur.
https://www.cjoint.com/?0ErlIut1LHA
Merci