Incrémentation ne marche pas
Re-bonjour,
Je ne savais pas trop s'il fallait ouvrir un autre topic, vu que j'en avais ouvert un ce matin mais les 2 n'ayant rien à voir je préfère en recréer un.
Mon fichier permet a des employés de rentrer des productions en leur donnant le moins de traitement de texte possible.
Pour faire simple :
_ Ils choisissent un OF dans "Liste des OF"
_ Les données propres à l'OF sont transférés dans le petit tableau dans "OF en cours"
Ils n'ont plus qu'a appuyer sur "Déclaration palette", ce qui va créer une nouvelle ligne dans le tableau + incrémenter la ligne de l'OF dans "Historique Production". Seulement le N° de palette ne s'incrémente pas. Voila le code présent dans le Module 1 :
If (indexLigne > 4 And OFEnCours.Cells(indexLigne - 1, 2).Value = reference) And OFEnCours.Range("H6").Value <> "" Then
' Il s'agit de la même référence, on incrémente le n° de palette
numeroPalette = OFEnCours.Cells(indexLigne - 1, 4).Value + 1
Else
numeroPalette = OFEnCours.Range("H6").Value
End If
En gros, si la ligne au dessus de celle qui vient de s'incrémenter à la même référence, le numéro de palette est égale à celui du dessus +1.
Sinon il est égale à la valeur en H6 (Prochaine palette) ce qui permet de récupérer un N° de palette dans le cas ou des Palettes pour cet OF auraient déjà été sorties.
Ex: On fait des palettes de 700 produits, on doit en fabriqué 3500. On a déjà produits 2800 mais on a du arrêter l'OF pour en faire un autre en priorité. H6 va récupérer la quantité fabriqué de l'OF dans la feuille "Liste des OF" et va la divisé par la quantité par palette et faire +1. Soit ici (2800/700) +1 = 4 + 1 = 5.
Pour la ligne suivante lorsqu'on appuie sur "Déclaration Palette" vu que la référence qui sera incrémenter dans le tableau est identique à celle de la ligne au dessus, le N° de palette devrait s'incrémenter. Seulement il ne le fait pas..
J'ai cherché, cherché, sans trouver
Pour plus de détails je vous mets le fichier complet, pour moi cela vient du Module 1 mais bon il y a tellement de code que je ne sais pas si certains interfère avec le fonctionnement de cette incrémentation.
Dans l'espoir que vous pourrez m'aider et merci d'avance
Si vous avez besoin de plus de précision sur certains points n'hésitez pas à me questionner.
Bonsoir, ne serait-ce pas plutôt cela que tu veux faire ?
If (indexLigne > 4 And OFEnCours.Cells(indexLigne - 1, 2).Value = Range("H8").Value) And OFEnCours.Range("H6").Value <> "" Thenau lieu de cela :
If (indexLigne > 4 And OFEnCours.Cells(indexLigne - 1, 2).Value = reference) And OFEnCours.Range("H6").Value <> "" ThenBon courage
Ton code revenait au même car la variable référence récupère la valeur de "H8".
Mais j'ai trouvé la solution et ça marche en remplaçant le " = reference" par "Like reference".
If (indexLigne > 4 And OFEnCours.Cells(indexLigne - 1, 2).Value Like reference And OFEnCours.Range("H6").Value <> "") Then
numeroPalette = OFEnCours.Cells(indexLigne - 1, 4).Value + 1
Else
numeroPalette = OFEnCours.Range("H6").Value
End If
Je te remercie quand même de ton aide