Menu

Optimisation code VBA calculs date [Résolu]

Messages postés
84
Date d'inscription
lundi 27 février 2017
Statut
Membre
Dernière intervention
23 mai 2019
- - Dernière réponse : Coco-8
Messages postés
84
Date d'inscription
lundi 27 février 2017
Statut
Membre
Dernière intervention
23 mai 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 :)
Afficher la suite 

3 réponses

Messages postés
504
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
5 juin 2019
37
0
Merci
Bonjour,

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

Cordialement.

Daniel
Commenter la réponse de danielc0
Messages postés
22752
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 juin 2019
5511
0
Merci
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
Commenter la réponse de eriiic
Messages postés
84
Date d'inscription
lundi 27 février 2017
Statut
Membre
Dernière intervention
23 mai 2019
1
0
Merci
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
Commenter la réponse de Coco-8