Microsoft 365 Mise en forme conditionnelle d'une ligne d'un tableau VBA

bluesky12000

XLDnaute Junior
Bonjour à tous,

Dans un tableau, si la valeur d'une cellule en dernière colonne est le mot Option, je cherche à mettre en gras toute la ligne du tableau
J'ai besoin de le faire en VBA car mes tableaux sont insérés via des Query et souvent supprimés, c'est alors très long de recréer la mise en forme conditionnelle manuellement.
Donc mon exemple les données du tableau sont nommées "J1Plage" mais cela serait plus simple si je pouvais sélectionner tous les tableaux d'une feuille.

Si je le fais via Excel sans vba voici la formule que j'utilise et qui met toute la ligne en gras :

=$E3="Option"

Problème résolu :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Range("Jour1,Jour2").FormatConditions.Delete

With Range("Jour1,Jour2").FormatConditions.Add(xlExpression, xlEqual, "=$E3=""Option""")

With .Font
.Bold = True
.Color = -1694694
.TintAndShade = 0

End With

End With

End Sub

Merci d'avance pour votre aide,
 

Pièces jointes

  • Créer un Tableau - Copy.xlsm
    19.9 KB · Affichages: 7
Dernière édition:
Solution
Bonsoir Bluesky,
En PJ un pas très bel essai, mais qui au moins marche, en attendant mieux :
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [J1Plage]) Is Nothing Then MFC [J1Plage], Target
    If Not Intersect(Target, [J2Plage]) Is Nothing Then MFC [J2Plage], Target
End Sub
Sub MFC(Plage As Range, T As Range)
    With Plage
        On Error Resume Next
        .FormatConditions.Delete
        C = "$E" & Plage.Row
        Range(C).Select
        .FormatConditions.Add Type:=xlExpression, Formula1:="=" & C & "=" & """Option"""
        .FormatConditions(1).Font.Bold = True
        T.Select
    End With
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Bluesky,
En PJ un pas très bel essai, mais qui au moins marche, en attendant mieux :
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [J1Plage]) Is Nothing Then MFC [J1Plage], Target
    If Not Intersect(Target, [J2Plage]) Is Nothing Then MFC [J2Plage], Target
End Sub
Sub MFC(Plage As Range, T As Range)
    With Plage
        On Error Resume Next
        .FormatConditions.Delete
        C = "$E" & Plage.Row
        Range(C).Select
        .FormatConditions.Add Type:=xlExpression, Formula1:="=" & C & "=" & """Option"""
        .FormatConditions(1).Font.Bold = True
        T.Select
    End With
End Sub
 

Pièces jointes

  • Créer un Tableau - Copy.xlsm
    19.9 KB · Affichages: 2

Discussions similaires

Réponses
2
Affichages
154

Statistiques des forums

Discussions
298 028
Messages
1 965 283
Membres
200 894
dernier inscrit
Sneaks