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