comment faire ...

AKSooL

XLDnaute Occasionnel
bonjour

je souhaiterais faire un code VBA du genre

si dans une colonne A3 vers A100
si le filtre est activé , mettre la cellule de la selection du filtre A3 , en rouge

Merci pour votre aide

et aussi mettre ce code pour B3-C3-D3-.....

Merci encore

et ou mettre ce code , dans thisworkbook ou dans la feuille
 

skoobi

XLDnaute Barbatruc
Re : comment faire ...

Bonsoir,

le code suivant colore la cellule A3 du filtre si le filtre est actif dans la colonne A:

Code:
If ActiveSheet.AutoFilter.Filters(1).On Then Range("A3").Font.Color = vbRed

Je te laisse trouver pour les autres colonnes.
 

Excel-lent

XLDnaute Barbatruc
Re : comment faire ...

Bonsoir AKSooL, skoobi, le forum

La même chose que Skoobi, sauf que j'ai rajouté une boucle pour qu'il gère tes 4 colonnes.

Code:
Sub ColorierPoliceDesColonnesFiltrées()

   Dim Colonne As Integer

   For Colonne = 1 To 4 [COLOR="red"][B]'remplacer 4 par le nb de colonne de ton tableau[/B][/COLOR]
  
       If ActiveSheet.AutoFilter.Filters(Colonne).On Then Cells(1, Colonne)[COLOR="Blue"].Interior.ColorIndex = 3[/COLOR]

   Next Colonne
  
End Sub

Pour information, la partie en rouge, c'était juste pour expliquer, tu peux très bien l'enlever lorsque tu recopieras la macro dans Module 1. Ou laisser pour plus tard, pour te souvenir de la signification du "4"

Bonne soirée

Edit 1. : j'ai légèrement retouché le code, pour que ta cellule se colorie en rouge, comme tu l'as demandé (le code précédent colorie en rouge la police, et non pas la cellule).
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : comment faire ...

Bonsoir,

La même chose en plus élaboré!

La macro, colorie les cellules demandé en rouge, mais également, elle "dé-colorie" les cellules rouge de la fois précédente, pour ne laisser colorié en rouge QUE les cellules filtrées.

Code:
Sub ColorierPoliceDesColonnesFiltrées()

  Dim NumColonne As Integer

  For NumColonne = 1 To 4  [COLOR="Red"]'remplacer 4 par le nb de colonne de ton tableau[/COLOR]


      If ActiveSheet.AutoFilter.Filters(NumColonne).On Then
            Cells(3, NumColonne).Interior.ColorIndex = 3
      Else: Cells(3, NumColonne).Interior.ColorIndex = xlNone
      End If

  Next NumColonne

End Sub

Edit : oublié de répondre à ta dernière question! Tu peux copier cette macro sur module 1, 2, ... ou sur la feuille concerné

A+
 
Dernière édition:

Statistiques des forums

Discussions
312 216
Messages
2 086 340
Membres
103 192
dernier inscrit
Corpdacier