vgendron
XLDnaute Barbatruc
Bonjour,
j'ai besoin de vos lumières pour le problème suivant car je suis dans le flou total. voire le noir....
dans une feuille, j'ai une ligne sur laquelle est appliqué le filtre automatique. disons de A1 à D1
je voudrais mettre en évidence par une MFC les cellules pour lesquelles le filtre est activé. (le nouveau symbole d'Excel 2007, n'est guère mieux que la flèche bleue d'Excel 2003..)
pour savoir quelles sont les colonnes ou le filtre est actif, j'utilise la fonction de Boisgontier "ChampActif"
puis dans une règle de MFC, je colore en rouge la cellule si le filtre y est actif:
ce qui donne ceci:
la fonction: champactif ():
Function ChampActif(c)
Application.Volatile
ChampActif = Sheets(Application.Caller.Parent.Name).AutoFilter.Filters.Item(c.Column - Sheets(Application.Caller.Parent.Name).Range("_FilterDataBase").Column + 1).On
End Function
puis la macro de MFC:
Sub ColorChampActifs2()
'sélection des cellules contenant le filtrage automatique
Set LineDebut = Application.InputBox("selectionnez la première cellule de gauche de la zone", Type:=8)
LineDebut.Select
AdresseDebut = ActiveCell.Address(rowabsolute:=False, columnabsolute:=False)
Set ZoneAColorer = Range(ActiveCell, ActiveCell.End(xlToRight))
ZoneAColorer.Select
MsgBox ("ici")
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=champactif(" & AdresseDebut & ")"
MsgBox ("la")
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
MsgBox ("et ici")
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
MsgBox ("et la")
Selection.FormatConditions(1).StopIfTrue = True
MsgBox ("enfin ici")
End Sub
résultat lorsque je lance la macro:
une règle est bien définie.. MAIS, aucune mise en forme d'appliquée
j'ai placé quelques msgbox qui m'indiquent que la macro ne va finalement pas jusqu'au bout: elle s'arrête juste avant "là"
pourtant, j'ai généré cette partie de code avec le mode record Macro......
et ca fonctionne bien..
donc la question:
qu'est ce qui cloche???
Merci d'avance et bonne journée !
Vincent
j'ai besoin de vos lumières pour le problème suivant car je suis dans le flou total. voire le noir....
dans une feuille, j'ai une ligne sur laquelle est appliqué le filtre automatique. disons de A1 à D1
je voudrais mettre en évidence par une MFC les cellules pour lesquelles le filtre est activé. (le nouveau symbole d'Excel 2007, n'est guère mieux que la flèche bleue d'Excel 2003..)
pour savoir quelles sont les colonnes ou le filtre est actif, j'utilise la fonction de Boisgontier "ChampActif"
puis dans une règle de MFC, je colore en rouge la cellule si le filtre y est actif:
ce qui donne ceci:
la fonction: champactif ():
Function ChampActif(c)
Application.Volatile
ChampActif = Sheets(Application.Caller.Parent.Name).AutoFilter.Filters.Item(c.Column - Sheets(Application.Caller.Parent.Name).Range("_FilterDataBase").Column + 1).On
End Function
puis la macro de MFC:
Sub ColorChampActifs2()
'sélection des cellules contenant le filtrage automatique
Set LineDebut = Application.InputBox("selectionnez la première cellule de gauche de la zone", Type:=8)
LineDebut.Select
AdresseDebut = ActiveCell.Address(rowabsolute:=False, columnabsolute:=False)
Set ZoneAColorer = Range(ActiveCell, ActiveCell.End(xlToRight))
ZoneAColorer.Select
MsgBox ("ici")
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=champactif(" & AdresseDebut & ")"
MsgBox ("la")
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
MsgBox ("et ici")
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
MsgBox ("et la")
Selection.FormatConditions(1).StopIfTrue = True
MsgBox ("enfin ici")
End Sub
résultat lorsque je lance la macro:
une règle est bien définie.. MAIS, aucune mise en forme d'appliquée
j'ai placé quelques msgbox qui m'indiquent que la macro ne va finalement pas jusqu'au bout: elle s'arrête juste avant "là"
pourtant, j'ai généré cette partie de code avec le mode record Macro......
et ca fonctionne bien..
donc la question:
qu'est ce qui cloche???
Merci d'avance et bonne journée !
Vincent
Pièces jointes
Dernière édition: