Encore une petite modif

oui, c’est positif !
ta proposition tout comme les deux de Cow fonctionne bien

1 « J'aime »

prenez celui qu vous comprenez mieux.

Hello
alors celui qui est tombé a terre le premier est la dernière version de @Cow18
le tien fonctionnant pour une mise à jour le lundi, mais quand vient la mise à jour du mardi ça me remet dimanche alors que la version de Cow18 avec sa petite MsgBox fonctionne aussi pour la Maj du mardi

Bonjour taz

La problématique vient de cette partie :

Else
Wd.Cells(Dl, 1).Value = Date - 2
'Wd.Cells(Dl, 1).Value = Date - 1
Wd.Cells(Dl, 13).Value = Ws.Range(« H22 »)
Wd.Cells(Dl, 14).Value = Ws.Range(« F14 »)
Wd.Cells(Dl, 15).Value = Ws.Range(« H14 »)
Wd.Cells(Dl, 16).Value = Ws.Range(« F16 »)

et plus particulièrement de cette ligne de code :

Wd.Cells(Dl, 1).Value = Date - 2

Elle alimente du jour la colonne « A » de la dernière ligne traitée

Pourquoi Date-2 ???

Effectivement pour un mardi ce sera 2 jours avant soit le dimanche

Que cherches tu à mettre avec par cette instruction ?

En fonction il faut ou l’adapter ou la supprimer

Concernant la date à intégrer tout le traitement fonctionne très bien jusqu’à cette ligne de code il y a bien le lundi de renseignė en colonne « A » mais à l’exécution de celle-ci patatras c’est le dimanche qui le remplace

Je n’ai aucune explication la concernant donc difficile de l’adapter correctement pour répondre à tous les cas

A toi de donner le bon contexte

Comme expliqué plus haut, Cow18 avait la même question, le décalage vient du fait que les données viennent de deux sites différents, avec une mise à jour a un jour de décalage, J-1 pour le premier et J-2 pour le second, j’aurai pu pour plus de facilité ignorée le décalage à J-2 et que ça se fasse sur la même ligne,
mais du fait du J-2 cette partie du code devrais alimenter la ligne avant la ligne J-1, peut être avec un Row-1

"mais du fait du J-2 cette partie du code devrais alimenter la ligne avant la ligne J-1, peut être avec un Row-1 "
Pour mettre un dimanche ???

par rapport à la dernière date renseigné dans l’onglet montant
admettons que la dernière ligne renseignée en colonne A soit avec la date du vendredi, ces données devraient s’inscrire à la date du jeudi, soit une ligne avant
donc en renseignant le lundi les données, celles-ci se mettent pour la première partie sur vendredi et la deuxième sur jeudi,
en renseignant le mardi, les données de la première partie s’inscrivent bien pour le lundi et ceux de la deuxième partie sur la ligne du vendredi, soit une ligne avant

mais ne t’embêtes pas, le dernier fichier de Cow18 est fonctionnel en l’état
Capture d'écran 2024-04-08 171755
Capture d'écran 2024-04-09 104340

Ok mais la ligne d’instruction concernée met comme valeur : Date-2
Pour un mardi cela correspond à un dimanche
Donc le vendredi concerné pour la ligne avant celui-ci sera modifié par le dimanche (Date-2)
Est ce bien l’attendu ?

Non, justement le mardi, le jour attendu serait le vendredi pour la deuxième partie, ou alors en ignorant purement et simplement cette partie.

L’ignorer dans ce contexte y répondra correctement mais dans un autre que celui-ci pour lequel cette ligne est présente afin d’un résultat correct son absence sera dommageable
Si cette ligne de code a été mise en place elle devait répondre a une nécessité correspondant à un ou plusieurs cas et non pas pour le simple plaisir de sa présence
Il y a toujours pour chaque ligne de code présente dans un traitement la réponse à une exigence potentielle qui doit être prise en considération au risque d’un résultat aléatoirement détérioré

A toi donc de voir si celle-ci peut-être ignorée ou être maintenu et adapté selon quels critères
Seul toi connais le contexte de fonctionnement

effectivement en supprimant cette partie du code ça me met bien un lundi au lieu du dimanche

  If Wd.Cells(Dl - 1, 1).Value = jour - 1 Then
'Wd.Cells(Dl - 1, 1).Value = Date - 1 Then
    Wd.Cells(Dl - 1, 13).Value = Ws.Range("H22")
    Wd.Cells(Dl - 1, 14).Value = Ws.Range("F14")
    Wd.Cells(Dl - 1, 15).Value = Ws.Range("H14")
    Wd.Cells(Dl - 1, 16).Value = Ws.Range("F16")
    
    
  Else
    Wd.Cells(Dl, 1).Value = jour - 1
'Wd.Cells(Dl, 1).Value = Date - 1
    Wd.Cells(Dl, 13).Value = Ws.Range("H22")
    Wd.Cells(Dl, 14).Value = Ws.Range("F14")
    Wd.Cells(Dl, 15).Value = Ws.Range("H14")
    Wd.Cells(Dl, 16).Value = Ws.Range("F16")
    
    
    End If

Donc tu vois l’origine de l’anomalie en cette ligne de code
A toi de voir si sa suppression pure et simple correspond à la meilleure résolution tous cas confondus
Seul toi peut statuer

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.