Différence de date avec warning de prévention

Fermé
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 - 11 déc. 2007 à 00:41
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 - 17 déc. 2007 à 21:46
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

BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
11 déc. 2007 à 05:20
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
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
11 déc. 2007 à 07:44
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
BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
11 déc. 2007 à 17:01
Oui ça me semble mieux... si personne ne t'as aidé je t'envoie la soluce ce soir ;)
0
BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
11 déc. 2007 à 23:52
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
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
12 déc. 2007 à 10:58
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
13 déc. 2007 à 02:30
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
gildautal Messages postés 16 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 9 janvier 2008 3
13 déc. 2007 à 05:56
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
BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
13 déc. 2007 à 18:47
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
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
13 déc. 2007 à 20:10
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
BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
14 déc. 2007 à 04:49
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
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
17 déc. 2007 à 21:46
merci pour ton aide car ca ne se bouscule pas pour une soluce
0