Onglet de couleur suivant Valeur dans une colonne

Résolu
69nounours Messages postés 5 Statut Membre -  
69nounours Messages postés 5 Statut Membre -
Bonjour,

je souhaiterais mettre l'onglet de la couleur rouge si dans ma colonne K j'ai une valeur Attente ou attente

alors j'ai utilisé sa

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

If (ActiveSheet.Cells(5, 11) = "Attente" Or ActiveSheet.Cells(6, 11) = "Attente" Or ActiveSheet.Cells(7, 11) = "Attente" Or ActiveSheet.Cells(8, 11) = "Attente" Or ActiveSheet.Cells(9, 11) = "Attente" Or ActiveSheet.Cells(10, 11) = "Attente" Or ActiveSheet.Cells(11, 11) = "Attente" Or ActiveSheet.Cells(12, 11) = "Attente" Or ActiveSheet.Cells(13, 11) = "Attente" Or ActiveSheet.Cells(14, 11) = "Attente" Or ActiveSheet.Cells(15, 11) = "Attente" Or ActiveSheet.Cells(16, 11) = "Attente" Or ActiveSheet.Cells(17, 11) = "Attente" Or ActiveSheet.Cells(18, 11) = "Attente" Or ActiveSheet.Cells(19, 11) = "Attente" Or ActiveSheet.Cells(20, 11) = "Attente" Or ActiveSheet.Cells(21, 11) = "Attente" Or ActiveSheet.Cells(22, 11) = "Attente" Or ActiveSheet.Cells(23, 11) = "Attente" Or ActiveSheet.Cells(24, 11) = "Attente" Or ActiveSheet.Cells(25, 11) = "Attente" Or ActiveSheet.Cells(26, 11) = "Attente" Or ActiveSheet.Cells(27, 11) = "Attente" Or ActiveSheet.Cells(28, 11) = "Attente") Then

ActiveSheet.Tab.ColorIndex = 3 'rouge

Else

ActiveSheet.Tab.ColorIndex = 10 'vert

End If

End Sub

mais je me vois pas faire cela sur 200 lignes

merci d'avance de votre aide

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, un exemple:
    Option Explicit
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim nligne As Long
    Dim rouge As Boolean
    rouge = False
    For nligne = 5 To 200
        If ActiveSheet.Cells(nligne, 11) = "Attente" Then
            rouge = True
            Exit For
        End If
    Next nligne
        If rouge Then
            ActiveSheet.Tab.ColorIndex = 3 'rouge
        Else
            ActiveSheet.Tab.ColorIndex = 10 'vert
        End If
    End Sub
    0
  2. 69nounours Messages postés 5 Statut Membre
     
    Bonjour,
    je te remercie yg_be cela marche nickel

    une question supplémentaire
    je voudrais que la cellule qui comporte attente me serve d'horodateur.
    en gros sur la colonne précédente j'ai une date et je voudrais que ma cellule reste orange si la date de la colonne précédente est sous les 15 jours sinon que ma case passe en rouge

    possible?

    merci d'avance
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Bonsoir, c'est trè possible. Un peu comme ceci (non testé):
      Option Explicit
      Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
      Dim nligne As Long
      Dim rouge As Boolean
      rouge = False
      For nligne = 5 To 200
          If ActiveSheet.Cells(nligne, 11) = "Attente" Then
              if (ActiveSheet.Cells(nligne, 10) <now() - 15 ) Then
                    ActiveSheet.Cells(nligne, 11).Interior.ColorIndex = 3
              end if
              rouge = True
              Exit For
          End If
      Next nligne
          If rouge Then
              ActiveSheet.Tab.ColorIndex = 3 'rouge
          Else
              ActiveSheet.Tab.ColorIndex = 10 'vert
          End If
      End Sub

      Si la date de la colonne 10 est plus ancienne que 15 jours avant maintenant, alors la case de la colonne 11 devrait changer en rouge.
      0
  3. 69nounours Messages postés 5 Statut Membre
     
    Bonsoir,

    je vous remercie
    Bonne soirée
    0