Comment prendre la date pour alerte

taztaz Messages postés 2 Date d'inscription   Statut Membre -  
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
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. 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