Sub CREATION_EXEMPLE() ' A NE LANCER QU'UNE FOIS - Ne sert qu'à créer des données pour le test
Dim t, r As Range: t = [{"Calque","SDO" ,"LPN" ,"CFC", "CI" , "Câble/Tube"}]: [A5:F5] = t: [K5:P5] = t
Set r = [K6:K30]: r = "=CHAR(35)&""-""&REPT(CHAR(59+ROW()),3)&TEXT(ROW()-5,"" 000"")"
[L6:P30] = "=ADDRESS(ROW(),COLUMN(),4)": [K5].CurrentRegion = [K5].CurrentRegion.Value
[K10:K11].FillDown: [K14:K16].FillDown: [K21:K24].FillDown
r.FormatConditions.AddUniqueValues: r.FormatConditions(1).DupeUnique = 1
r.FormatConditions(1).Font.Color = vbRed: r.FormatConditions(1).Interior.Color = vbYellow: r.FormatConditions(1).Font.Bold = -1
[K5].CurrentRegion.Borders.Weight = 2
End Sub
Sub Filtre_Avancé()
[R6] = "=LEFT(K6)=""#""" 'c'est cette formule qui sert de critère pour le filtre
'le critère est donc: le 1er caractère des cellules en colonne K est égal à #
[R6].Font.Color = vbWhite ' mise en blanc de la police en R6 (pour ne pas voir la formule): c'est juste esthétique
'application du Filtre Avancé avec Recopie en colonne A (à partir de A5) et sans doublons
[K5:K30].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("R5:R6"), CopyToRange:=Range("A5"), Unique:=True
End Sub