[VBA Excel] Filtres automatiques
Fermé
ben7777
Messages postés
30
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
1 août 2007
-
25 juil. 2006 à 10:43
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 juil. 2006 à 12:26
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 juil. 2006 à 12:26
Bonjour,
j'ai deux colonnes avec des filtres automatiques. J'aimerai automatiser ceci :
- il faudrait filtrer le premier élément apparaissant dans le menu déroulant du filtre (je ne suis pas sensé connaître sa valeur)
-remettre le filtre à ALL
-refaire cela avec la colonne de droite
Est-ce possible ?
Merci d'avance
j'ai deux colonnes avec des filtres automatiques. J'aimerai automatiser ceci :
- il faudrait filtrer le premier élément apparaissant dans le menu déroulant du filtre (je ne suis pas sensé connaître sa valeur)
-remettre le filtre à ALL
-refaire cela avec la colonne de droite
Est-ce possible ?
Merci d'avance
A voir également:
- [VBA Excel] Filtres automatiques
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
26 juil. 2006 à 12:26
26 juil. 2006 à 12:26
bonjour
voilà la macro :
Sub filtre_2col()
Dim sel, valeur, k, rep, col
Set sel = Application.InputBox("Choisissez les colonnes à filtrer", _
"Colonnes à filtrer", , 100, 200, , , 8)
For col = 0 To 1
valeur = Cells(sel.Row + 1, sel.Column + col).Value
For k = sel.Row + 1 To Cells(65000, sel.Column).End(xlUp).Row
If Cells(k, sel.Column + col).Value < valeur _
And Cells(k, sel.Column + col).Value <> "" Then
valeur = Cells(k, sel.Column + col).Value
End If
Next k
Range(sel.Address).EntireColumn.AutoFilter Field:=col + 1, Criteria1:=valeur
rep = MsgBox("Vu ?", vbOKOnly, "Validation")
Selection.AutoFilter Field:=col + 1
Range(sel.Address).AutoFilter
Next col
End Sub
tu peux remplacer :
Set sel = Application.InputBox("Choisissez les colonnes à filtrer", _
"Colonnes à filtrer", , 100, 200, , , 8)
par Set sel = range("A1:B1") A1:B1 étant le titre des colonnes.
voilà la macro :
Sub filtre_2col()
Dim sel, valeur, k, rep, col
Set sel = Application.InputBox("Choisissez les colonnes à filtrer", _
"Colonnes à filtrer", , 100, 200, , , 8)
For col = 0 To 1
valeur = Cells(sel.Row + 1, sel.Column + col).Value
For k = sel.Row + 1 To Cells(65000, sel.Column).End(xlUp).Row
If Cells(k, sel.Column + col).Value < valeur _
And Cells(k, sel.Column + col).Value <> "" Then
valeur = Cells(k, sel.Column + col).Value
End If
Next k
Range(sel.Address).EntireColumn.AutoFilter Field:=col + 1, Criteria1:=valeur
rep = MsgBox("Vu ?", vbOKOnly, "Validation")
Selection.AutoFilter Field:=col + 1
Range(sel.Address).AutoFilter
Next col
End Sub
tu peux remplacer :
Set sel = Application.InputBox("Choisissez les colonnes à filtrer", _
"Colonnes à filtrer", , 100, 200, , , 8)
par Set sel = range("A1:B1") A1:B1 étant le titre des colonnes.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
26 juil. 2006 à 07:25
26 juil. 2006 à 07:25
bonjour
Est-ce possible ? oui bien sûr !
Est-ce utile ? non !
il faudrait filtrer le premier élément : c'est le plus petit.
remettre le filtre à ALL aucun souci.
refaire cela avec la colonne de droite
aucun souci.
Lorsque tu écris une macro qui fait cela ton écran s'agite,
et revient à l'état initial, sinon il faut avoir plein de messages
intermédiaires et il n'y a plus d'intérêt.
Si tu tiens à la macro, je te la mettrais quand même...
Est-ce possible ? oui bien sûr !
Est-ce utile ? non !
il faudrait filtrer le premier élément : c'est le plus petit.
remettre le filtre à ALL aucun souci.
refaire cela avec la colonne de droite
aucun souci.
Lorsque tu écris une macro qui fait cela ton écran s'agite,
et revient à l'état initial, sinon il faut avoir plein de messages
intermédiaires et il n'y a plus d'intérêt.
Si tu tiens à la macro, je te la mettrais quand même...