Onglet de couleur suivant Valeur dans une colonne

Résolu/Fermé
69nounours Messages postés 5 Date d'inscription lundi 23 janvier 2017 Statut Membre Dernière intervention 28 janvier 2017 - 23 janv. 2017 à 18:41
69nounours Messages postés 5 Date d'inscription lundi 23 janvier 2017 Statut Membre Dernière intervention 28 janvier 2017 - 26 janv. 2017 à 20:29
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

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
23 janv. 2017 à 20:40
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
69nounours Messages postés 5 Date d'inscription lundi 23 janvier 2017 Statut Membre Dernière intervention 28 janvier 2017
Modifié par 69nounours le 24/01/2017 à 04:28
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
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
24 janv. 2017 à 18:36
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
69nounours Messages postés 5 Date d'inscription lundi 23 janvier 2017 Statut Membre Dernière intervention 28 janvier 2017
26 janv. 2017 à 20:29
Bonsoir,

je vous remercie
Bonne soirée
0