Onglet de couleur suivant Valeur dans une colonne [Résolu/Fermé]

Signaler
Messages postés
5
Date d'inscription
lundi 23 janvier 2017
Statut
Membre
Dernière intervention
28 janvier 2017
-
Messages postés
5
Date d'inscription
lundi 23 janvier 2017
Statut
Membre
Dernière intervention
28 janvier 2017
-
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

Messages postés
11805
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 août 2020
674
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
Messages postés
5
Date d'inscription
lundi 23 janvier 2017
Statut
Membre
Dernière intervention
28 janvier 2017

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
Messages postés
11805
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 août 2020
674
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.
Messages postés
5
Date d'inscription
lundi 23 janvier 2017
Statut
Membre
Dernière intervention
28 janvier 2017

Bonsoir,

je vous remercie
Bonne soirée