Optimisation code VBA calculs date

Résolu/Fermé
Coco-8 Messages postés 92 Date d'inscription lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 - 22 mai 2019 à 10:17
Coco-8 Messages postés 92 Date d'inscription lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 - 23 mai 2019 à 11:16
Bonjour à tous,

Je me suis lancé, depuis peu, dans la "vraie création de macro", sans passer par l'enregistreur de macro. J'en ai créé une qui fonctionne plutôt bien mais je bloque depuis hier sur un petit détails qui a son importance... Je vous explique :

J'ai un fichier excel où une ligne = une commande client.
Au milieu de ces lignes, il y a quelques lignes correspondants aux OF (Ordre de fabrication).

Pour qu'une commande puisse être livré à son client, il faut donc qu'il y ait un OF.

Pour chaque commande, ma macro récupère la date la plus proche de l'OF du modèle commandé pour connaitre à quelle date on peut répondre aux besoins des clients, et l'insère dans la colonne H, et retire la quantité à livrer dans la colonne OF.

Mon code Vba fonctionne bien mais dans le cas où pour répondre à la quantité d'une commande il faut aller dans consommer 2 OF, alors mon code à ses limites (voir RENAULT CLIO 3, Concessionnaire Amiens cde=5).

Sub CalculsDate()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim NbLigne As Integer 'Nombre de ligne/Nb de commande à traiter
NbLigne = 2

While Cells(NbLigne, 1) <> ""
NbLigne = NbLigne + 1
Wend
NbLigne = NbLigne - 1
MsgBox (NbLigne)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

i = 2

For i = 2 To NbLigne
v = 2
While (Cells(v, 7) < Cells(i, 6).Value Or Cells(v, 1) <> Cells(i, 1)) And v <= NbLigne
v = v + 1
Wend
If v <= NbLigne And Cells(i, 4) <> "OF" Then
Cells(i, 8) = Cells(v, 3).Value
Cells(v, 7) = Cells(v, 7).Value - Cells(i, 6).Value
Else
If Cells(i, 4) = "OF" Then
Cells(i, 8) = "OF"
Else
Cells(i, 8) = "PAS DE PROD"
End If
End If
Next

MsgBox ("CALCULS DATE TERMINE")

End Sub


Si quelqu'un aurait une solution à me proposer je vous en serai énormément reconnaissant.

Je n'ai sans doute pas était suffisamment claire, donc n'hésitez pas si vous voulez d'autres informations.

Je vous mets mon fichier en pièce-jointe

https://mon-partage.fr/f/GfpCVXs8/

Merci beaucoup :)
A voir également:

3 réponses

danielc0 Messages postés 830 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 avril 2024 74
22 mai 2019 à 18:59
Bonjour,

Je ne comprends pas ce que tu veux faire dans ce cas. Peux-tu détailler ?

Cordialement.

Daniel
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
22 mai 2019 à 19:58
Bonjour à tous,

Je confirme, pas clair du tout.
Il y a des commandes, ok.
Mais où trouve-t-on ce qui est produit et à quelle date pour piocher dedans ?
Il n'y a qu'un seul tableau...
eric
0
Coco-8 Messages postés 92 Date d'inscription lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 2
23 mai 2019 à 11:16
Merci à vous deux pour vos réponses.
Il est difficile d'expliquer ce que ma macro réalise et ce que je souhaite réaliser, désolé.

Après une journée et demie dessus, j'ai trouvé la solution en rajoutant une boucle dans boucle aux boucles déjà présentes :). C'est compliqué mais tant que ça marche...

Merci
0