Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RÉSOLU] Différencier par une couleur le Oui et le Non

un internaute

XLDnaute Impliqué
Bonjour le forum,
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 5 And Target.Row >= 4 And Target.Row <= 19 Then
        With Target.Offset(0, -4).Resize(1, 4).Font
            .Strikethrough = Not (.Strikethrough)
            Target = IIf(.Strikethrough, "Oui", "Non")
        End With
    Range("A1").Select
    End If
    Application.EnableEvents = True
End Sub

Il y a peu vous m'avez aidé à faire mettre Oui et Non par macro.
Ça fonctionne super bien et c'est très pratique.
Une idée est venue à l'esprit d'un pote: Comment différencier le Oui et le Non par 2 couleurs.
Actuellement c'est une couleur unique le jaune code 36
Moi je ne sais pas faire.
Quelqu'un aurait-il une astuce?
Merci d'avance pour vos éventuels retours.
Bien cordialement
 

un internaute

XLDnaute Impliqué
Bonsoir le forum,
Voilà ce que je voulais faire:
A mettre dans ThisWorkbook

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim Indice As Integer, NbColonne As Integer
Dim Tb, TbCoul, X, TbFont, Label As String

  Select Case UCase(Sh.Name)
    Case "TOTO", "TOTO1", "TOTO2", "TOTO3", "TOTO4"
      NbColonne = 4
    Case "TOTO5", "TOTO6"
      NbColonne = 3
  End Select

  If Target.Column = NbColonne + 1 And Target.Row >= 3 And Range("A" & Target.Row) <> "" Then
    Application.EnableEvents = False
    TbFont = Array(5, 3, 5)
    TbCoul = Array(36, 35, 36)
    Tb = Array("", "OUI", "NON")
    Cancel = True
    
    X = UCase(Trim(Target))
    If UBound(Filter(Tb, X, compare:=vbTextCompare)) >= 0 Then
      Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
      Label = Tb(Indice)
      With Target
        .Value = Label
        .Interior.ColorIndex = TbCoul(Indice)
        .Font.ColorIndex = TbFont(Indice)
      End With
      With ActiveCell.Offset(0, -NbColonne).Resize(1, NbColonne)
        If Label = "OUI" Then
          .Font.Strikethrough = True
        Else
          .Font.Strikethrough = False
        End If
      End With
    End If
  
    Application.EnableEvents = True
  End If
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…