Macro Excel - Filtre élaboré et mise en forme contionnelle
John1tm
Messages postés1Date d'inscriptionjeudi 9 juillet 2009StatutMembreDernière intervention 9 juillet 2009
-
9 juil. 2009 à 12:06
fngoagouni
Messages postés22Date d'inscriptionvendredi 3 juillet 2009StatutMembreDernière intervention 3 mai 2010
-
9 juil. 2009 à 23:50
Bonjour,
Voici le sujet que je cherche a développer.
J'ai une base de données, j'ai des macros filtres élaborés qui permettent d'extraire sur un autre onglet certaines lignes de cette BdD selon 3 critères (par ex "oui", "non", "SO") et les lignes ainsi extraites sont mises en formes automatiquement selon ces 3 mêmes critères, par exemple une couleur par critère.
La mise en forme automatique est faite sur la feuille excel et non déterminée par une macro.
Du coup le nombre de lignes exportés varient selon le critère, il peut par exemple y avoir 20 lignes pour "SO" et seulement 5 pour "oui" et dans ce cas la mise en forme auto fait que toutes les lignes vides du tableau qui ont été remplies précédemment ont une mise en forme (genre fond bleu) et du coup à l'impression je vais avoir des pages avec des lignes bleues mais vides.
Par exemple je clique sur le filtre "oui" il m'exporte 20 lignes mises en forme etc..., je clique sur "non" il m'exporte les 5 lignes correspondant au critères "non" et les 15 lignes suivantes redeviennent vides (elles sont effacées) mais il reste les bordures de cellules et le fond coloré.
Je cherche à supprimer ce reliquat de mise en forme et de n'avoir qu'un tableau avec des lignes réellement rempli.
Merci à vous
John
Voici le code servant à l'export par filtre élaboré :
Range("A2").Select
ActiveCell.FormulaR1C1 = "Non"
Range("A6").Select
ActiveCell.FormulaR1C1 = "a"
Range("A5").Select
Range("BdD").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"A1:A2"), CopyToRange:=Range("A5:I5"), Unique:=False
Columns("E:E").Select
With Selection
.WrapText = True
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.CenterHeader = "&""Arial,Gras""&16Titre du dossier - filtre "Non""
End With
Range("B1").Select
End Sub
A voir également:
Macro Excel - Filtre élaboré et mise en forme contionnelle