Dans excel, je chercherais à surligner une ligne en fonction de la valeur du champ de la colonne 2 de cette ligne.
Je pense avoir un truc qui tient la route.
Problème : quand la valeur n'est pas trouvée, la macro bug...
Pourriez vous svp m'aider à améliorer cela pour que la macro ne fasse simplement RIEN si elle ne trouve pas la valeur?
Merci pour votre aide.
Citation :
Sub Macro6() Dim O As Worksheet 'déclare la variable O (Onglet) Dim PL1 As Range 'déclare la variable PL1 (Plage1) Dim PL2 As Range 'déclare la variable PL2 (Plage2)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran Set O = Worksheets("4- Department" ) 'définit l'onglet O Set PL1 = O.Range("A1" ).CurrentRegion 'définit la plage PL1 'PL1.Interior.ColorIndex = xlNone 'supprime les couleurs dans la plage PL1 Set PL2 = PL1.Offset(1, 0).Resize(PL1.Rows.Count - 1, PL1.Columns.Count) 'définit la plage PL2 (PL1 sans les en-têtes) PL1.CurrentRegion.AutoFilter 'supprime un éventuel filtre automatique PL1.AutoFilter Field:=2, Criteria1:="Nouvelle modif par Interface" 'filtre la plage PL1 avec "Nouvelle modif par Interface" comme critère dans la colonne 6 With PL2.SpecialCells(xlCellTypeVisible).Interior 'prend en comple l'intérieur des cellules visibles de la plage PL2 .Pattern = xlSolid 'paramètre couleur .PatternColorIndex = xlAutomatic 'paramètre couleur .ThemeColor = xlThemeColorAccent6 'paramètre couleur .TintAndShade = 0.799981688894314 'paramètre couleur .PatternTintAndShade = 0 'paramètre couleur End With 'fin de la prise ene compte... PL1.AutoFilter Field:=2, Criteria1:="Nouvelle modif HORS Interface" 'filtre la plage PL1 avec "Nouvelle modif HORS Interface" l comme critère dans la colonne 6 With PL2.SpecialCells(xlCellTypeVisible).Interior 'prend en comple l'intérieur des cellules visibles de la plage PL2 .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent4 .TintAndShade = 0.799981688894314 .PatternTintAndShade = 0 End With 'fin de la prise ene compte... PL1.AutoFilter 'supprime le filtre automatique Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran Application.ScreenUpdating = False 'masque les rafraîchissements d'écran End Sub
Message édité par Samourai le 20-12-2021 à 23:20:39
Marsh Posté le 20-12-2021 à 23:18:26
Bonjour.
Dans excel, je chercherais à surligner une ligne en fonction de la valeur du champ de la colonne 2 de cette ligne.
Je pense avoir un truc qui tient la route.
Problème : quand la valeur n'est pas trouvée, la macro bug...
Pourriez vous svp m'aider à améliorer cela pour que la macro ne fasse simplement RIEN si elle ne trouve pas la valeur?
Merci pour votre aide.
Sub Macro6()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL1 As Range 'déclare la variable PL1 (Plage1)
Dim PL2 As Range 'déclare la variable PL2 (Plage2)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set O = Worksheets("4- Department" ) 'définit l'onglet O
Set PL1 = O.Range("A1" ).CurrentRegion 'définit la plage PL1
'PL1.Interior.ColorIndex = xlNone 'supprime les couleurs dans la plage PL1
Set PL2 = PL1.Offset(1, 0).Resize(PL1.Rows.Count - 1, PL1.Columns.Count) 'définit la plage PL2 (PL1 sans les en-têtes)
PL1.CurrentRegion.AutoFilter 'supprime un éventuel filtre automatique
PL1.AutoFilter Field:=2, Criteria1:="Nouvelle modif par Interface" 'filtre la plage PL1 avec "Nouvelle modif par Interface" comme critère dans la colonne 6
With PL2.SpecialCells(xlCellTypeVisible).Interior 'prend en comple l'intérieur des cellules visibles de la plage PL2
.Pattern = xlSolid 'paramètre couleur
.PatternColorIndex = xlAutomatic 'paramètre couleur
.ThemeColor = xlThemeColorAccent6 'paramètre couleur
.TintAndShade = 0.799981688894314 'paramètre couleur
.PatternTintAndShade = 0 'paramètre couleur
End With 'fin de la prise ene compte...
PL1.AutoFilter Field:=2, Criteria1:="Nouvelle modif HORS Interface" 'filtre la plage PL1 avec "Nouvelle modif HORS Interface" l comme critère dans la colonne 6
With PL2.SpecialCells(xlCellTypeVisible).Interior 'prend en comple l'intérieur des cellules visibles de la plage PL2
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With 'fin de la prise ene compte...
PL1.AutoFilter 'supprime le filtre automatique
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
End Sub
Message édité par Samourai le 20-12-2021 à 23:20:39
---------------
Nihon, gambare !