Comment prendre la date pour alerte

taztaz Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Polux31 Messages postés 7219 Statut Membre -
Bonsoir ,a tous
je suis novice sur exel et j utilise exel 2007 pour faire untableau prevision entretien avec alerte,

je ne sais pas commen prendre la date du jour en cour comme reference pour cree une alerte sur un entretien a faire

mon tableau contient 9 colone lier a 1 seul ligne car j ai 24 ligne,

je souhaiteraie si cela est possible faire une alerte sous 30 jour avans echeancequi passe en jaune et ensuite qui passe en rouge sous 15 j av la dite date si join le tableau pour mieu comprendre

je souhaiterai faire l alerte pour va par ex a 30 j en jaune et ensuite la passe en rouge a 15 jour le tout couple au n° de vehicule

n° véhicule km réel prochaine vp va + freino vss limiteur controlographe TROUSSE SECOUR CRONO A VIDE
TRACER 1 298 500 300 000 10/11/2009 10/11/2010 10/08/2010 10/08/2009

en vous remerciant d avance pour l aide
A voir également:

1 réponse

Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

Voilà un exemple :

Dans l'éditeur VB (alt + F11), créer un module (barre de menu -> Insertion -> module) et coller le code ci dessous

Sub main()
Dim ws As Worksheet
Dim plage As Range
Dim cl
    
    'On déclare la feuille contenant les données (ici la feuille 1 du classeur)
    Set ws = Worksheets(1)
    '
    'On déclare la plage contenant les données (ici le tableau va de la cellule A2 à I26)
    Set plage = ws.Range("A2:I26")
    '
    'On parcours toutes les cellules de la plage
    For Each cl In plage
        'On vérifie qu'il s'agit d'une date
        If IsDate(cl.Value) Then
            'Si c'est une date, on compte en jour ("d") la différence
            'entre la date de la cellule et celle d'aujourd'hui donnée par le système (Date)
            If DateDiff("d", cl.Value, Date) <= 30 And DateDiff("d", cl.Value, Date) > 15 Then
                'Elle est inférieure ou égale à 30 et supérieure à 15
                'On met un fond jaune à la cellule
                cl.Interior.Color = vbYellow
            End If
            If DateDiff("d", cl.Value, Date) <= 15 Then
                'Elle est inférieure ou égale à 15
                'On met un fond rouge à la cellule
                cl.Interior.Color = vbRed
            End If
        End If
    Next cl
    
End Sub


Ensuite, ouvrir ThisWorkbook (à gauche de l'éditeur) et coller le code ci-dessous :
Ce code s'exécute automatiquement à chaque ouverture du fichier.

Private Sub Workbook_Open()
    ' On lance la procédure main() du module1
    Module1.main
End Sub


Bon courage

;o)
0