• Initiateur de la discussion Initiateur de la discussion paolo44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

paolo44

Guest
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

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:
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
305
Réponses
3
Affichages
279
  • Question Question
Autres Planning
Réponses
8
Affichages
323
Réponses
4
Affichages
481
Réponses
3
Affichages
189
Réponses
5
Affichages
352
  • Résolu(e)
Microsoft 365 planning
Réponses
17
Affichages
2 K
Retour