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

3 réponses

danielc0
Messages postés
694
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
19 janvier 2022
56
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
24391
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mai 2022
7 079
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