Vba-colorier ligne selon date cellule

  • Initiateur de la discussion Initiateur de la discussion Celeda
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Celeda

XLDnaute Barbatruc
Bonjour,

Après avoir testé (et découvert surtout) quelques macros qui coloriaient les lignes, je n'arrive pas à m'en sortir et je fais donc appel à vous.

Dans le fichier, je souhaite par macro évenementielle colorier la ligne en color index 38 si date dans la colonne 0 et color index 15 si date dans la colonne P
sinon rien du tout.
Je ne passe pas par mfc en raison déjà de plusieurs coloriages 😀

Merci beaucoup
 

Pièces jointes

Re : Vba-colorier ligne selon date cellule

Bonjour Celeda,

Voici un code à mettre sur la feuille (clic droit sur l'onglet > Visualiser le code).
Il se déclenche à chaque changement de valeur dans une des cellules de la feuille.
VB:
'Evènement "_Change" de la feuille.
'Se déclanche à chaque changement de cellule (lorsqu'on valide la saisie).
'"Target" représente la cellule (ou zone) qui vient de changer.

Private Sub Worksheet_Change(ByVal Target As Range)

    
    'Vérifier si la cellule qui vient de changer est dans la colonne O ou P.
    'Sinon, quitter la macro.
    If Application.Intersect(Target, Range("O:P")) Is Nothing Then Exit Sub
        
        
    'Si Target est dans la colonne O est que la valeur saisie est une date
    If Not Application.Intersect(Target, Range("O:O")) Is Nothing And IsDate(Target.Value) Then
        Target.EntireRow.Interior.ColorIndex = 38
        
    'sinon, on effectue le test sur la colonne P
    ElseIf Not Application.Intersect(Target, Range("P:P")) Is Nothing And IsDate(Target.Value) Then
        Target.EntireRow.Interior.ColorIndex = 15
    End If
    
End Sub
a+
 
Dernière édition:
Re : Vba-colorier ligne selon date cellule

Bonjour,
Quand la macro doit-elle s'activer ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 5 Or Target.Count > 1 Then Exit Sub
If Target.Column = 15 And IsDate(Target) Then
    Rows(Target.Row).Interior.ColorIndex = 38
ElseIf Target.Column = 16 And IsDate(Target) Then
    Rows(Target.Row).Interior.ColorIndex = 15
Else
    Rows(Target.Row).Interior.ColorIndex = xlNone
End If
End Sub
A+
kjin
 
Re : Vba-colorier ligne selon date cellule

Bonjour,

Merci pour les codes mromain (toujours très pratiques les commentaires) et kjin : les deux sont parfaits.
Merci chris pour le rappel (je privilégie d'habitude la mfc mais là, cela devenait compliqué à gérer);

Merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
431
Réponses
5
Affichages
679
Réponses
0
Affichages
556
Réponses
7
Affichages
987
Retour