Optimisation code VBA calculs date

Résolu
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -
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 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Bonjour,

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

Cordialement.

Daniel
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention   2
 
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