! pop up date et délai dépassé !

Résolu/Fermé
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 - 8 juil. 2009 à 15:09
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 - 9 juil. 2009 à 10:45
--------------------------------------------------------------------------------

Bonjour amis forumistes!

Je viens vers vous afin que vous m'aidiez à réaliser mon projet!

le fichier sur lequel je travaille contient une colonne "importance" (peut etre devrais je l'appeler 'priorité' ou autre chose..ceci étant en rapport avec le courrier client) dans laquelle se trouvent les lettres "C" "N" ou "F" pour "critique" "normale" ou "faible"

il faudrait que:
les couriers "critique" soient traités sous 5 jours ouvrés (on peut faire sous 5 jours ou 7 jours tout court si c'est plus partique à programmer!)

les courriers "normale" soient traités sous 8 jours ouvrés (pareil)

les courriers "faible" soient traités sous 12 jours ouvrés (pareil)

Comme la date de réception de courrier est renseignée, comment peut on pour qu'un pop up signale qu'un courrier critique n'est tjs pas traité alors qu'il est arrivé depuis 5 jours ou plus ?! (donc arriver a comparer la date d'arrivée du courrier et la date actuelle, et envoyer le pop up si délai de réponse dépassé)

et pareil pr les autres types de courrier....

Remarque: il faudrait un pop up pr dire "Réponse client bien enregistrée" qd une réponse a été apportée ("O" dans la colonne "réponse")

Merci par avance pour vos aides !!
A voir également:

7 réponses

jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
8 juil. 2009 à 15:33
Bon, pour les jours ouvré ou pas.. faut voir a la fin, une fois que ca tourne... mais tout d abord.. en quoi c'est ton prog ??

vb, c++, access???
0
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
8 juil. 2009 à 16:12
c'est vrai dsl!
ss excel 2003;-)
0
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
8 juil. 2009 à 16:15
j'ai mis ca et ca marche:

Code :

Dim date1 As Date, date2 As Date, duree As Integer
date1 = [C4].Value
date2 = Format(Now, "dd/mm/yyyy")
duree = DateDiff("d", date1, date2)
MsgBox "Durée en jours : " & duree --> j'obtiens bien un pop un avec le bon nb dejours

pi faudrait faire :
si duree > 5 et que l'on a "N" en colonne E et "C" en colonne G alors 1 MsgBox
si duree > 7 et que l'on a "N" en colonne E et "N" en colonne G alors 1 autre MsgBox
si duree > 10 et que l'on a "N" en colonne E et "G" en colonne G alors encore 1 autre MsgBox

et evidemment dés que la colonne E passe de "N" à "O" on ne met plu ces pop up là mais un disant simplement "vous avez bien répondu au courrier..."

le problème?! tout ca, je ne sais pas le faire !

Merci par avance pour ton aide !!
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
8 juil. 2009 à 21:37
si duree > 5 et que l'on a "N" en colonne E et "C" en colonne G alors 1 MsgBox

en pratique sur vb ca donne quelque chose comme :

if duree> 5 and Worksheets(1).Range ("E1").value="N" and Worksheets(1).Range ("G1").value="C" then msgbox ">5 N et C"

je sais qu il y a une fonction sous vb pour savoir la cellule en cours ce qui te donnera la ligne sur laquel tu bosse.. puis tu peux te deplacer à la ligne suivante et faire une boucle jusqu a la fin du tableau ( Worksheets(1).Range ("G33").value="" then end do)
0

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

Posez votre question
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
9 juil. 2009 à 08:17
Bonjour jjsteing,

alors pour ma boucle et mes conditions voila ce que j'ai fais:

Dim date1 As Date, date2 As Date, duree As Integer

dlng = Range("C65536").End(xlUp).Row

For I = 4 To dlng
date1 = Cells(I, 3).Value
date2 = Date
duree = DateDiff("d", date1, date2)

If duree > 5 And Cells(I, 5).Value = "N" And Cells(I, 7).Value = "C" Then
MsgBox "Vous devez répondre impérativement aux courriers critiques! (en rouge)"
ElseIf duree > 10 And Cells(I, 5).Value = "N" And Cells(I, 7).Value = "N" Then
MsgBox "Il faut répondre aux courriers clients en attente! (en attente)"
ElseIf duree > 15 And Cells(I, 5).Value = "N" And Cells(I, 7).Value = "F" Then
MsgBox "Il faut penser à répondre aux courriers clients...(en violet)"
Else
MsgBox "Vous avez bien répondu au courrier"
End If
Next
End Sub

ca marche bien... seulement j'ai des soucis:

il faudrait qu'a l'ouverture du fichier nous vérifions TOUTES les lignes de facon a ce que l'on vérifie a chaque fois si les délais de réponses client sont respectés suivant l'état (Critique Normal Faible), et le cas échéant afficher un pop up signalant la liste des affaires pour lesquelles le courrier dépasse les délais fixés..
je ne veux donc pas que cela se lance pour un chgt sur une des valeurs de ma feuille...quoi que...quel est le plus intelligent selon vous ?!
0
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
9 juil. 2009 à 10:45
bon ben avec l'aide d'un collegue on a réussi a faire ce qu'il faut et le script tourne nikel ;-)

Merci quand meme de t'etre penché sur le problème!

@ bientot sur CCM !
0
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
9 juil. 2009 à 10:45
bon ben avec l'aide d'un collegue on a réussi a faire ce qu'il faut et le script tourne nikel ;-)

Merci quand meme de t'etre penché sur le problème!

@ bientot sur CCM !
0