VBA - Bouton contenu cellules en rouge et inversément

Bonjour,

J'ai ce code pour pouvoir mettre en rouge le contenu d'une cellule sélectionnée cependant je souhaiterais l'adapter pour que la couleur rouge soit propagée sur la ligne mais uniquement entre les colonnes A et D. Je souhaiterais également que cette fonction ne soit applicable uniquement si la ou les cellules se trouvent dans la zone A5: D54.

Exemple:

Si la cellule B5 est sélectionnée, le contenu des cellules A5: D5 devient rouge et inversément au second clic.

Si les 6 cellules C8: D10 sont sélectionnées le contenu des cellules A8: D10 devient rouge et inversément au second clic.

Si la cellule E5 est sélectionnée, rien ne se passe car la cellules se trouve en dehors de la zone A5: D54.

Sub BoutonTexteCouleurRouge()
    Dim C As Range
    ActiveSheet.Unprotect Password:="."
    For Each C In Selection
        C.EntireRow.Font.Color = IIf(C.Font.Color = vbRed, vbBlack, vbRed)
    Next
    ActiveSheet.Protect Password:="."
End Sub

Pouvez-vous m'aider?

Meilleures salutations,

Thierry

Bonjour Thierry36

Voici une possibilité de code

Sub BoutonTexteCouleurRouge()
  Dim Lig As Long
  If Not Intersect(Selection, Range("A5:D54")) Is Nothing Then
    ActiveSheet.Unprotect Password:="."
    Lig = Selection.Row
    With Range("A" & Lig & ":D" & Lig)
      .Font.Color = IIf(.Font.Color = vbRed, vbBlack, vbRed)
    End With
    ActiveSheet.Protect Password:="."
  End If
End Sub

A+

Bonjour Bruno,

Votre formule fonctionne parfaitement bien mis à part qu'il ne faut sélectionner qu'une seule cellule à la fois mais ça me convient très bien comme ça.

Merci beaucoup pour votre aide et bonne fin de journée.

Rechercher des sujets similaires à "vba bouton contenu rouge inversement"