Bonjour à tous.
Je m'en remets encore une fois à vous pour m'aider sur un problème que je ne comprends pas.
J'ai un programme qui va chercher dans une base des informations sur les commandes fournisseurs.
De fait, je dois recalculer derrière les dates de livraison estimées, en fonction de certains temps moyens.
Pour faire ces calculs, je me sers d'un datetimepicker tout simple, que j'incrémente de la valeur du délai.
Seulement ... Excel n'est pas d'accord.
J'ai checké la valeur de mon dtpicker à chaque passage de boucle (pour chaque fournisseur en gros), et lui me prend les bonnes valeurs (du 28/07 => 10/08)
Donc là, il n'y a pas de problème.
Dans ce cas, pourquoi en faisant une simple affectation de valeur du genre
"cells(i,X).value = dtpicker1.value", Excel m'affiche-t-il une date de livraison estimée au 08/01 pour une commande passée le ... 27/07
Là j'avoue que j'ai du mal à comprendre pourquoi il inverse le mois et le jour, et comme il ne me le fait pas tout le temps (sur Juillet, c'est bon, dès qu'il passe à Août, il préfère Janvier
), je n'arrive pas à résoudre mon problème.
Voici le code qui permet de calculer ces dates de livraison:
Quelqu'un voit un moyen de m'aider ?
merci d'avance,
Thomas
Je m'en remets encore une fois à vous pour m'aider sur un problème que je ne comprends pas.
J'ai un programme qui va chercher dans une base des informations sur les commandes fournisseurs.
De fait, je dois recalculer derrière les dates de livraison estimées, en fonction de certains temps moyens.
Pour faire ces calculs, je me sers d'un datetimepicker tout simple, que j'incrémente de la valeur du délai.
Seulement ... Excel n'est pas d'accord.
J'ai checké la valeur de mon dtpicker à chaque passage de boucle (pour chaque fournisseur en gros), et lui me prend les bonnes valeurs (du 28/07 => 10/08)
Donc là, il n'y a pas de problème.
Dans ce cas, pourquoi en faisant une simple affectation de valeur du genre
"cells(i,X).value = dtpicker1.value", Excel m'affiche-t-il une date de livraison estimée au 08/01 pour une commande passée le ... 27/07
Là j'avoue que j'ai du mal à comprendre pourquoi il inverse le mois et le jour, et comme il ne me le fait pas tout le temps (sur Juillet, c'est bon, dès qu'il passe à Août, il préfère Janvier
Voici le code qui permet de calculer ces dates de livraison:
Code:
Private Sub CalculDateLivraison(DebutPlage As Integer, FinPlage As Integer, FeuilleActive As Worksheet)
Dim i As Integer
Dim ValeurDelais As Integer
With FeuilleActive
For i = DebutPlage To FinPlage
If RechercherDelais(CStr(.Cells(i, 3).Value)) > 0 Then
ValeurDelais = RechercherDelais(CStr(.Cells(i, 3).Value))
Else
If .Cells(i, 2).Value = "LIVR" Then
ValeurDelais = RechercherDelais("Moyenne Livre")
ElseIf .Cells(i, 2).Value = "DISQ" Then
ValeurDelais = RechercherDelais("Moyenne Disque")
End If
End If
dtpDateLivraison.Value = Format(.Cells(i, 1).Value + ValeurDelais, "dd/mm/yyyy")
MsgBox dtpDateLivraison.Value
If .Cells(i, 12).Value = "" Then
If Format(dtpDateLivraison.Value, "dddd") = "dimanche" Or Format(dtpDateLivraison.Value, "dddd") = "lundi" Then
If Format(dtpDateLivraison.Value, "dddd") = "dimanche" Then
dtpDateLivraison.Value = dtpDateLivraison.Value + 2
'MsgBox dtpDateLivraison.Value
ElseIf Format(dtpDateLivraison.Value, "dddd") = "lundi" Then
dtpDateLivraison.Value = dtpDateLivraison.Value + 1
'MsgBox dtpDateLivraison.Value
End If
End If
.Cells(i, 12).Value = Format(dtpDateLivraison.Value, "dd/mm/yyyy")
'.Cells(i, 13).Value = ValeurDelais
End If
Next i
End With
End Sub
Quelqu'un voit un moyen de m'aider ?
merci d'avance,
Thomas