Pb Macro Planning

paolo44

XLDnaute Nouveau
Je suis en train de faire un plannign de production et j'ai quelques problèmes dans ma macro.
J'essaye de faire un bouclage avec différentes variables à partir de l'ancien code.

Pouvez vous m'aider sur mon problème
 

Pièces jointes

  • Planning production2.zip
    42.5 KB · Affichages: 59

TooFatBoy

XLDnaute Barbatruc
Re : Pb Macro Planning

Il y a comme un problème là :
If tempsafaire = Range("G" & (r + e)) Then Next n
Tu ne peux pas mettre le Next dans un If, sinon il ne s'exécute pas obligatoirement et de plus ça provoque une erreur de "syntaxe" (ou plutôt de logique).


Même dans ton ancien code, j'ai un doute : à l'intérieur d'une boucle For...Next faire un goto vers une étiquette située à l'extérieur de cette boucle ça ne me semble pas très judicieux...
Mais je peux me tromper, je ne connais pas trop (voire pas du tout) la récursivité.

[edit]
Je n'ai rien dit pour ma remarque précédente : j'ai lu "GoTo Chaine3" alors que dans le code il y a écrit "GoTo Chaine4" en réalitè. :(
Je dirais, pour essayer de me rattrapper ;), que de toutes façons à mon avis il vaut mieux essayer de proscrire les GoTo.
[/edit]
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Pb Macro Planning

Un extrait de ton code :
Code:
Sub ChaineA()
'
' Macro1 Macro
' Macro enregistrée le 28/05/2002 par destabeau
Dim s As Variant
r = 4
e = 0
'Efface la zone
    Range("J4:[B]BI16[/B]").Select [COLOR="Red"][B](pourquoi BI16 et non BK16 ???)[/B][/COLOR]
    Selection.ClearContents 'efface la zone graphique chaîne 1
     Range("A4:I16").Select
    Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Calcule la première chaîne de vêtement
    If Range("[B]G[/B]" & r) = " " Then Exit Sub 'sort de la procédure si qté =0 [COLOR="red"][B](la quantité me semble être en colonne D et non G)[/B][/COLOR]
    For i = 1 To 54 ' fait la boucle autant de fois que de semaines 
    x = x + 1 'compte tour
    tempsafaire = Range("H4") * Cells(3, 9 + i) + Cells(4, 8 + i) 'multiplie la qté jour par les jours ouvrables et ajoute la semaine précédente
    tempsreste1 = tempsafaire - Range("F4") 'calcule le reste à fabriquer
    If tempsreste1 > 0 Then tempsafaire = Range("F4") 'si le reste est sup à 0 inscrit qté totale
    Cells(4, 9 + i) = tempsafaire ' inscrit le nombre de pièces sur la feuille
    If tempsafaire = Range("G4") Then GoTo Chaine2 ' lorsqu'on atteint la qté passe à chaîne suivante
    Next i
 
Dernière édition:

Statistiques des forums

Discussions
312 896
Messages
2 093 387
Membres
105 716
dernier inscrit
jrmdprt