mzubka
Habitué
Bonsoir,
je cherche à réaliser une macro permettant de me calculer un delai J+ entre une livraison et un plan de transport.
Un magasin étant livré à jour Fixe , je souhaite calculer pour Lundi Mardi.. vendredi le délai en J+.
Chaque magasin possède des livraisons fixes avec un jour de départ et d'arrivé.
Exemple :
Agen est livré le Mardi si la marchandise part avant 9h le Lundi
Donc si on calcul le délai pour chaque jour on obtient:
Lundi : J+1
Mardi : J+7
Mercredi : J+6
Jeudi J+5
Vendredi J+4
J'ai essayé d'adapter ce plan de transport pour faciliter la réalisation de macro.
Il est donc construit de la manière suivante:
Magasins / Jours d'arrivé entrepot / Jour d'arrivé magasin / Date limite
Agen / 1 2 3 / 2 3 4 / 08:00h
Bordeaux / 2 5 / 3 1 / 09:00h
J'ai donc essayé de réaliser une macro ... mais à mon avis mon algorithme n'est pas assez performant et l'imbrication succésives des boucles if dans les for .
Ci-joint le code :
Je suppose que sans le fichier de base cela n'est pas évident , comment puis je faire pour l'attacher au sujet?
Voila je recherche donc des astuces au niveau de l'algorithme pour réaliser ce calcul qui parait assez simple mais dont je ne me sors pas .
Merci d'avance , si vous avez des questions n hesitez pas !
je cherche à réaliser une macro permettant de me calculer un delai J+ entre une livraison et un plan de transport.
Un magasin étant livré à jour Fixe , je souhaite calculer pour Lundi Mardi.. vendredi le délai en J+.
Chaque magasin possède des livraisons fixes avec un jour de départ et d'arrivé.
Exemple :
Agen est livré le Mardi si la marchandise part avant 9h le Lundi
Donc si on calcul le délai pour chaque jour on obtient:
Lundi : J+1
Mardi : J+7
Mercredi : J+6
Jeudi J+5
Vendredi J+4
J'ai essayé d'adapter ce plan de transport pour faciliter la réalisation de macro.
Il est donc construit de la manière suivante:
Magasins / Jours d'arrivé entrepot / Jour d'arrivé magasin / Date limite
Agen / 1 2 3 / 2 3 4 / 08:00h
Bordeaux / 2 5 / 3 1 / 09:00h
J'ai donc essayé de réaliser une macro ... mais à mon avis mon algorithme n'est pas assez performant et l'imbrication succésives des boucles if dans les for .
Ci-joint le code :
Code:
Sub MACRO()
'Définition des variables
Dim i As Integer
Dim n As Integer
Dim m As Integer
Dim Jour_Livraison As Integer
Dim Jour_Test As Integer
Dim Jour_Arriv As Integer
Dim Delta As Integer
Dim Heure_limite As Date
Dim Heure_Livraison As Date
'Initialisation des variables
For i = 1 To 5
For m = 6 To 9
For n = 2 To 6
Heure_Livraison = Cells(3, 8)
Heure_limite = Cells(m, 8)
Jour_Livraison = Cells(m, n)
Jour_Test = i
Jour_Arriv = Cells(m, n + 7)
If (Heure_Livraison < Heure_limite) Then
If (Jour_Test <= Jour_Livraison) Then
Delta = Jour_Arriv - Jour_Test
If Delta < 0 Then
Delta = Delta + 7
Cells(m, 14 + n) = Delta
Else
Cells(m, 14 + n) = Delta
End If
ElseIf (Jour_Test > Jour_Livraison And IsEmpty(Cells(m, n + 1))) Then
Delta = Jour_Arriv - Jour_Test
If Delta < 0 Then
Delta = Delta + 7
Cells(m, 14 + n) = Delta
Else
Cells(m, 14 + n) = Delta
End If
End If
End If
Next
Next
Next
End Sub
Je suppose que sans le fichier de base cela n'est pas évident , comment puis je faire pour l'attacher au sujet?
Voila je recherche donc des astuces au niveau de l'algorithme pour réaliser ce calcul qui parait assez simple mais dont je ne me sors pas .
Merci d'avance , si vous avez des questions n hesitez pas !