Différence de date avec warning de prévention

lagodille Messages postés 99 Statut Membre -  
lagodille Messages postés 99 Statut Membre -
Bonjour,
j'ai une cellule P6= MAINTENANT()
j'ai une autre cellule H12= "12/06/08" (par exemple)
il faudrait qu'un mois avant la date inscrite dans H12/ à la date du jour (P6), la cellule H12 affiche 12/05/08 sur un fond orange .
en fait, avant la date, en vert; un mois avant en orange; le jour J et après en rouge

merci

9 réponses

  1. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Serait-il possible de réexpliquer le problème autrement ?
    C'est peut-être parce que je suis fatigué mais je n'y comprend absolument rien...
    0
  2. lagodille Messages postés 99 Statut Membre 4
     
    bonjour
    SUR EXCEL

    j'inscris une date dans la cellule H12 (ex 12/01/08) : a)La cellule H12 est sur fond vert
    b) un "0" est inscrit en J12

    il faudrait qu'un mois avant cette date c'est à dire dans l'exemple le 12/12/07 : a) la cellule H12 se colore sur fond orange
    b) un "1" soit inscrit en J12

    enfin quand la date de H12 sera dépassée : a) la cellule H12 se colore sur fond rouge
    b) un "2" soit inscrit en J12

    j'ai reformulé mon problème est ce plus clair ?
    merci
    0
  3. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Oui ça me semble mieux... si personne ne t'as aidé je t'envoie la soluce ce soir ;)
    0
  4. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Alors pour changer la couleur de fond d'une cellule, voici la commande : Cells(1,1).Interior.ColorIndex = 3 'Pour colorer la cellule A1
    Le numéro du colorindex sont associés à des couleurs mais je ne les connais pas. Tu trouveras facilement sur le net un tableau associant les numéros aux couleurs en cherchant un peu ;)

    Pour le reste, si toutes tes dates sont au format jj/mm/aa, il te suffit de séparer chaque date. Par exemple :

    ' Variables entières (jours, mois et années)
    Dim jour1 as integer
    Dim jour2 as integer
    Dim mois1 as integer
    Dim mois2 as integer
    Dim annee1 as integer
    Dim annee2 as integer
    Dim jourmaintenant as integer
    Dim moismaintenant as integer
    Dim anneemaintenant as integer

    ' Variable entière temporaire
    Dim temp as integer

    ' Variables chaînes de caractères (dates)
    Dim date1 as string
    Dim date2 as string

    ' Récupéaration de la date actuelle
    jourmaintenant = Day(Now())
    moismaintenant = Month(Now())
    anneemaintenant = Year(Now())

    ' Récupération de la date en H12
    date1 = Cells(8,12)
    jour1 = CInt(Left(date1,2)
    mois1 = CInt(Mid(date,4,5)
    annee1 = CInt(Right(date,2)

    ' Vérification de l'écart entre les dates
    ' temp prend la valeur du mois en cours +1 (nécessaire pour la suite)
    If mois1=01 Then
    temp=12
    Else
    temp=mois1-1
    End if
    If annee1 = anneemaintenant Then ' Mêmes années
    If moismaintenant>temp Then ' Mois - 1 dépassé
    If moismaintenant=temp+1 And jourmaintenant>jour1 Then ' + de 30 ou 31 jours d'écart
    Cells(8,12).Interior.ColorIndex = ??? (<---- placer ici le numéro correspondant à ORANGE)
    Cells(10,12) = "1"
    Else
    Cells(8,12).Interior.ColorIndex = ??? (<---- placer ici le numéro correspondant à VERT)
    End if
    Else
    Cells(8,12).Interior.ColorIndex = ??? (<---- placer ici le numéro correspondant à ORANGE)
    Cells(10,12) = "1"
    End If
    End if
    If annee1 < anneemaintenant Then
    If mois1 = 12 And moismaintenant = 1 And anneemaintenant = annee1 + 1 And jourmaintenant<jour1 Then
    Cells(8,12).Interior.ColorIndex = ??? (<---- placer ici le numéro correspondant à ORANGE)
    Cells(10,12) = "1"
    Else
    Cells(8,12).Interior.ColorIndex = ??? (<---- placer ici le numéro correspondant à VERT)
    End if
    End if
    If annee1 > anneemaintenant Then
    Cells(8,12).Interior.ColorIndex = ??? (<---- placer ici le numéro correspondant à ORANGE)
    Cells(10,12) = "1"
    End If

    Voilà pour la première partie avec le 1 et la couleur orange.
    Il te restera à l'adapter pour la seconde partie.
    Je ne l'ai pas testé mais je pense que ça devrait aller comme ça ;)
    0
    1. lagodille Messages postés 99 Statut Membre 4
       
      bonjour
      je l'ai testé http://www.cijoint.fr/cij97099072334502.xls et il y a un bug pour CInt que je ne connaissait d'ailleurs pas.
      peux tu m'aider
      merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Hello
    Sorry j'ai mixé les lignes et les colonnes... Donc chaque fois que je fais "Cells(..,..)", tu dois inverser les deux valeurs.

    Pour info, CInt permet de convertir un string en int mais renvoie une exception si jamais la valeur passée en paramètre n'est pas une nombre.

    Fais-moi savoir si ça ne marche toujours pas.
    0
    1. gildautal Messages postés 16 Statut Membre 3
       
      bonjour
      désolé mais malgré la modif ca ne fonctionne pas
      ci joint le fichier http://www.cijoint.fr/cij6850520634653.xls
      help help !!!

      merci
      0
  7. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Variables entières (jours, mois et années)
    Dim jour1 As Integer
    Dim jour2 As Integer
    Dim mois1 As Integer
    Dim mois2 As Integer
    Dim annee1 As Integer
    Dim annee2 As Integer
    Dim jourmaintenant As Integer
    Dim moismaintenant As Integer
    Dim anneemaintenant As Integer

    ' Variable entière temporaire
    Dim temp As Integer

    ' Variables chaînes de caractères (dates)
    Dim date1 As String
    Dim date2 As String

    ' Récupération de la date actuelle
    jourmaintenant = Day(Now())
    moismaintenant = Month(Now())
    anneemaintenant = Year(Now())

    ' Récupération de la date en H12
    date1 = Cells(12, 8)
    'date1 = "H12"
    jour1 = CInt(Left$(date1, 2))
    mois1 = CInt(Mid$(date1, 4, 2))
    annee1 = CInt(Right$(date1, 4))

    ' Vérification de l'écart entre les dates
    ' temp prend la valeur du mois en cours +1 (nécessaire pour la suite)
    If mois1 = 1 Then
    temp = 12
    annee1 = anne1 - 1
    Else
    temp = mois1 - 1
    End If

    If annee1 = anneemaintenant Then ' Mêmes années
    If moismaintenant > temp Then ' Mois - 1 dépassé
    If moismaintenant = temp + 1 And jourmaintenant > jour1 Then ' + de 30 ou 31 jours d'écart
    Cells(12, 8).Interior.ColorIndex = 46 '(<---- placer ici le numéro correspondant à ORANGE)
    Cells(12, 10) = "1"
    ElseIf moismaintenant > temp Then
    Cells(12, 8).Interior.ColorIndex = 46 '(<---- placer ici le numéro correspondant à ORANGE)
    Else
    Cells(12, 8).Interior.ColorIndex = 4 '(<---- placer ici le numéro correspondant à VERT)
    End If
    Else
    Cells(12, 8).Interior.ColorIndex = 46 '(<---- placer ici le numéro correspondant à ORANGE)
    Cells(12, 10) = "2"
    End If
    End If

    If annee1 < anneemaintenant Then
    If mois1 = 12 And moismaintenant = 1 And anneemaintenant = annee1 + 1 And jourmaintenant < jour1 Then
    Cells(12, 8).Interior.ColorIndex = 46 '(<---- placer ici le numéro correspondant à ORANGE)
    Cells(12, 10) = "3"
    Else
    Cells(12, 8).Interior.ColorIndex = 4 '(<---- placer ici le numéro correspondant à VERT)
    End If
    End If

    If annee1 > anneemaintenant Then
    Cells(12, 8).Interior.ColorIndex = 46 '(<---- placer ici le numéro correspondant à ORANGE)
    Cells(12, 10) = "4"
    End If
    End Sub

    J'ai fais quelque tests et ça a l'air de marcher mieux...
    0
  8. lagodille Messages postés 99 Statut Membre 4
     
    bonsoir

    voici de nouveau mon fichier http://www.cijoint.fr/cij109731528434655.xls avec ta modif sans plus de succès par rapport aux 3 conditions choisies.
    ca marche une seule fois puis après plus rien

    peux tu te pencher (sans tomber) sur mon fichier SVP
    merci
    0
  9. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Bon...
    Je regarderai ça sérieusement tantôt. J'vais revoir ça à fond et je te renverrai le tout quand ça marchera.
    Parce que pour l'instant mes mises à jours à répétition ça fait vraiment "bricolage" :-/

    J'te renvoie ça tantôt... ;-)
    0
  10. lagodille Messages postés 99 Statut Membre 4
     
    merci pour ton aide car ca ne se bouscule pas pour une soluce
    0