BorderAround avec .FormatConditions
Bonjour tout le monde,
J'espère que vos vacances se sont bien passées (peut être certain.e.s attendent encore d'avoir ce plaisir).
Je reviens avec un tout petit problème mais dont je n'arrive pas à trouver la solution même sur le net.
Je voudrais dans mon code VBA faire une mise en forme conditionnelle de mes 4 bordures en même temps (simplifier ce que fait l'enregistreur de macro).
J'avais déjà utilisé la méthode ".BorderAround"mais la avec la méthode ".FormatConditions" je n'arrive pas à la faire fonctionner. Savez vous si c'est possible?
Je suis bien sur ouvert à toutes autres propositions.
Je vous remercie par avance encore une fois.
Voici ce que propose l’enregistreur de macro avec le début de mes modifications et la plage d'application. Si possible je voudrais regrouper les 4 paragraphes de mise en forme de chaque bordure en 1 seul paragraphe.
'Mise en forme conditionnelle des cases "Echec"
Dim MaPlage As Range
Set MaPlage = Range("E3:E98")
MaPlage.FormatConditions.Add Type:=xlTextString, String:="Echec", _
TextOperator:=xlContains
MaPlage.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
MaPlage.FormatConditions(1).Interior.Color = RGB(255, 80, 80)
MaPlage.FormatConditions(1).Font.Bold = True
With MaPlage.FormatConditions(1).Borders(xlLeft)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
With MaPlage.FormatConditions(1).Borders(xlRight)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
With MaPlage.FormatConditions(1).Borders(xlTop)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
With MaPlage.FormatConditions(1).Borders(xlBottom)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
With MaPlage.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 8420607
.TintAndShade = 0
End With
Bonjour,
Sans filets (ni essais...)
Si tu enlèves le (xlLeft)?
'Mise en forme conditionnelle des cases "Echec"
Dim MaPlage As Range
Set MaPlage = Range("E3:E98")
MaPlage.FormatConditions.Add Type:=xlTextString, String:="Echec", _
TextOperator:=xlContains
MaPlage.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
MaPlage.FormatConditions(1).Interior.Color = RGB(255, 80, 80)
MaPlage.FormatConditions(1).Font.Bold = True
With MaPlage.FormatConditions(1).Borders
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
With MaPlage.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 8420607
.TintAndShade = 0
End With
Peut-être?
Bonjour CousinHub,
Et ben écoute, c'est encore une fois au plus simple qu'on ne pense pas et pourtant c'est souvent le plus efficace. Donc voila, même sans filet ta solution fonctionne très bien.
Merci à toi pour ton aide.
Bonne fin de semaine.