Toujours des problèmes de calcul dans ma macro

F

Fab

Guest
Bonjour,
Je commence à ne plus rien comprendre.
Dans une colonne, il y a des dates limites. Il récupère chacune de ces dates qu'il stocke dans une variable.
Il demande (au travers d'une InputBox) la limite de jour acceptable avant de déclencher une alerte.
Lorsque j'excécute la macro, toutes les dates qu'il rencontre sont pour lui inférieures au minimum et il déclenche l'alerte.
Mais quand je lui fais afficher les valeurs intermédiaires calculées, elles sont justes.
Quelqu'un a-t-il la solution svp.
Merci

NB : Il y a des variables définies en trop, mais j'ai fais une version courte de ma macro pour illustrer mon problème.


Sub ControleDate2()
Dim DateLimite As Date
Dim DelaiLimite
Dim i, j, k
Dim Blanc, Onglet
Dim Action, ActionLiee, Qui, DateButoire
Dim Message, Title, Default, NBJAControler

Message = "Indiquez le nombre de jours à controler"
Title = "Action à effectuer prochainement"
Default = "N jours"
NBJAControler = InputBox(Message, Title, Default)

' Vérification sur la feuille Process
Sheets("Process").Select
Onglet = ActiveSheet.Name

' Début de la 1ère boucle
For i = 3 To 200
' Test de la cellule selectionnée
Range("F" & i).Select
If Range("F" & i) = "" Then
Blanc = 0
Else
DateLimite = Range("F" & i).Value
DelaiLimite = (DateLimite - Date)
If (DelaiLimite < NBJAControler) And (Range("I" & i).Value = "") Then
Range("J" & i).Select
Range("J" & i).Value = DelaiLimite
Range("K" & i).Select
Range("K" & i).Value = NBJAControler
' Action
Sheets("ATTENTION").Select
' Début de la 2ème boucle
For j = 3 To 25
' Test de la cellule selectionnée
Range("B" & j).Select
If (Range("B" & j) = "") And (Range("C" & j) = "") Then
Sheets(Onglet).Select
Action = Range("B" & i).Value
ActionLiee = Range("C" & i).Value
Qui = Range("H" & i).Value
DateButoire = Range("F" & i).Value

Sheets("ATTENTION").Select
Range("B" & j).Value = Action
Range("C" & j).Value = ActionLiee
Range("D" & j).Value = DateButoire
Range("E" & j).Value = Qui

Sheets(Onglet).Select
Exit For
End If
Next j
End If
End If
Next i
Range("A3").Select
' Fin de la vérification de la feuille Process OM-174-DP
Sheets("ATTENTION").Select


End Sub
 
F

Fab

Guest
Salut,
En fait, "Date" correspond à la date du jour.
Dans une ancienne version, j'avais une variable type ("Dim DateDuJour as Date") et une ligne de commande ("DateDuJour = Now"), mais en utilisant Date, il sait directement qu'il s'agit de la date du jour, sans avoir besoin d'écrire les 2 lignes ci-dessus.
A plus
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou