Programmation et formulation?

Bonjour!

Je suis étudiant en agroalimentaire et donc mes connaissances en Excel sont très sommaires! Et mon Stage comprend une partie où je dois utiliser Excel.

J'ai besoin d'une aide venant de ceux qui s'y connaissent.

Mon problème est expliqué dans le fichier joint.

https://www.excel-pratique.com/~files/doc2/ClasseurPB12.xls

Si vous avez besoins de précisions, n'hésitez pas à me le demander.

Vous me sauveriez mon stage car c'est juste le lancement de mon projet mais sans sa je ne peux pas continuer.

Merci beaucoup!

Bonjour,

Si vous avez besoins de précisions, n'hésitez pas à me le demander.

Ben, justement..

Lorsque l'employé remplit la ligne, remplit-il également la formule en colonne M?

et le temps de triage est-il toujours de 5 par palette?

Est-ce lui qui remplit le temps dans la colonne L?

A te relire

Très bonnes questions!!!

Ben dans ce cas pour la Colonne M, on peut demander à l'employé de la remplir tout seul sans formule si sa facilite la programmation?

Quand aux heures, le temps est variable. l'employé de par son expérience mettra le temps prévu pour ce genre de palette car comme je l'avait précisé, il y a plus de 1800 lignes avant celle sur laquelle j'ai travaillé pour les formules et puisque il y a en réalité qu'une 20ène de raison différentes pour les blocages et que c'est redondant, alors il pourra mettre le temps total prévu. Bien entendu c'est une évaluation, car ce programme n'a pas pour objectif de voir les performances des employés dans le triage mais juste de voir les statistiques sur les raisons de ces blocages.

Pour info, je suis étudiant dans l'agroalimentaire et ceux sont des conserves que l'entreprise où je fais mon stage fabrique. Mon projet est de déterminer quelles sont les amélioration des processus possibles pour réduire les pertes et se rapprocher des exigences des clients.

Ce programme que je n'arrive pas à faire est une partie d'un ensemble qui fera que je pourrais déterminer où il y a des améliorations possibles.

Merci en tout cas de t'intéresser à mon problème

Re-,

un premier jet...

pour la 1ère question, regarde la formule dans la cellule P2...

Elle fait référence à une zone nommée dynamique (regarde dans insertion/Nom/Définir)

la zone se calcule via cette formule :

=DECALER(Feuil1!$M$1;LIGNE();;DECALER(Feuil1!$I$1;LIGNE()-1;))

Place-toi dans la cellule P2, clique sur insertion/Nom/Définir, puis sur "palette"

clique ensuite en bas, dans la case "Fait référence à"

la zone va s'entourer de pointillés....

pour la 2 ème, clique sur le petit rectangle rouge, dans la cellule B1...

le code ne fonctionnera que si la police de la dernière ligne (ligne rentrée manuellement par l'employé) est de couleur noire.

Le code va recopier cette ligne, y apporter les modifs nécessaires, insérer les formules, et mettre la police en bleu pâle (on peut changer, si tu veux)

Bon courage

le fichier :

https://www.excel-pratique.com/~files/doc2/ClasseurPB12_v1.xls

Alors là Felix, chapeau l'artiste!!!

Merci beaucoup c'est une superbe astuce le bouton rouge!

Pour la zone nommée dynamique j'ai bien observé j'ai du aller voir dans Formule/gestionnaire de noms puisque je dois travailler chez moi avec la version 2007 de Excel alors qu'en stage j'ai Excel 97 mais j'ai bien vu la zone qui est entouré pour la référence et je n'oublierais pas cette astuce pour les prochains travaux que j'aurais à faire sur Excel

Sinon je voudrais modifier la couleur des lignes générées c'est cela que je dois modifier : ".Font.ColorIndex = 37" enfin juste le 37 par un autre chiffre correspondant à la couleur que je souhaiterais si j'ai bien compris...?

Ensuite j'ai essayé de l'importer dans la feuille excel original utilisé dans l'entreprise, j'ai vu qu'il y' avait des problème et que cela demandait de déboguer. C'est peut-être du à la ligne d'entête qui commence à la ligne 8 et que la première ligne que je rentre est déjà situé à la ligne 1800? Si oui je dois modifier quoi dans le code VBA?

Merci de ton aide et de tes réponses rapides!!!

Re-,

pour les couleurs, je peux te conseiller de dérouler ce petit code :

Sub couleurs()
For i = 1 To 56
    Cells(i, 1).Value = i
    Cells(i, 2).Interior.ColorIndex = i
Next i
End Sub

tu créés un nouveau classeur, tu vas dans le VBE (Alt + F11)

Clic droit, Insertion/Module

colles ce code, et lances le par F5, après avoir cliqué dans le code

Tu auras les colorindex des couleurs...

Pour l'autre souci, recopie la ligne qui buggue ici. Tu cliques sur Déboggage, une ligne sera surlignée. Clique sur bouton Stop (carré en haut), et recopie la ligne qui buggue, ainsi que le code erreur dans le msgbox...

Bon courage

Donc voici la ligne qui bug L5 :

"Range(Cells(derlig, 1), Cells(derlig, 15)).AutoFill Destination:=Range(Cells(derlig, 1), Cells(derlig + derlig2, 15)), Type:=xlFillCopy"

Et le message erreur est le suivant : "erreur d'exécution 1004 La méthode Autofill de la classe range a échoué"

Je t'enverrais bien le document entier pour que tu vois concrètement ce que cela produit lorsque je rentre le code de ta macro mais il fait plus de 2 Mo...

Et excellent le code pour les couleurs!

Merci encore pour tes explications, elles sont claires et précises!!

re-,

je t'ai envoyé en message privé mon adresse mail

zippe le fichier avant d'envoyer, stp..

Bon courage

C'est Ok, je te l'ai envoyé en .zip

Tu verras le classeur de 3 feuilles, c'est la seconde concerné par la macro...

Merci et bon courage à toi surtout!

Re-,

c'est bien ce que je craignais...

le nombre de palettes (en colonne I) n'est pas renseigné....

Comment ce nombre est-il rempli?

Re,

c'est une colonne que j'ai créé afin de pouvoir générer le bon nombre de lignes et on entrera ce nombre manuellement c'est pourquoi aucune des lignes précédentes n'a de nombre de palettes indiqués.

De plus chaque palette a des nombres de boites différentes a cause de leur taille différente c'est pourquoi il n y a pas de palette "standard" et qu'on est obligé de renseigner le nombre de palette pour générer le bon nombre de lignes...

C'est pour cela qu'il y a le bug?

Re,

c'est une colonne que j'ai créé afin de pouvoir générer le bon nombre de lignes et on entrera ce nombre manuellement c'est pourquoi aucune des lignes précédentes n'a de nombre de palettes indiqués.

De plus chaque palette a des nombres de boites différentes a cause de leur taille différente c'est pourquoi il n y a pas de palette "standard" et qu'on est obligé de renseigner le nombre de palette pour générer le bon nombre de lignes...

C'est pour cela qu'il y a le bug?

(** désolé doublons **)

Re,

entre autre...

Euh, à partir de la ligne 31536, tu as des données...

jusqu'à la ligne 33240.......

C'est normal?

désolé de répondre si tardivement...

Je n'avais pas vu ces données et mon maître de stage non plus il m'aurait prévenu.

Si cela gêne tu peux les effacer je garde une copie de sa au cas où.

2journalier.zip (29.23 Ko)

Re,

à y regarder de plus près je penche pour une erreur de manipulation vu la répétition de ces lignes...

Re,

et effectivement c'est une erreur de manipulation... ces lignes sont identiques ou presque à la ligne 793... donc elles peuvent être supprimées.

Merci de les avoir vu!!!

Re,

je te renvoie le fichier corrigé...

Si tu n'as pas rentré de nombre de palettes, le code te renvoie à tes études.....

Idem, si tu n'as pas mis de durée de triage.....

Ensuite, en rouge, l'écriture.....

En cliquant sur le logo de la boîte, tu déclenches la procédure.....

nouveau code :

Sub repet()
On Error GoTo gestion
derlig = [E8].End(xlDown).Row
If Cells(derlig, 9).Value = "" Then
    MsgBox "Veuillez entrer le nombre de palettes"
    Cells(derlig, 9).Select
    End
End If
If Cells(derlig, 12).Value = "" Then
    MsgBox "Veuillez entrer un temps estimé de triage par palette"
    Cells(derlig, 12).Select
    End
End If
If Cells(derlig, 1).Font.ColorIndex = xlAutomatic Then
    Application.EnableEvents = False
    derlig2 = Cells(derlig, 9).Value
    Range(Cells(derlig, 1), Cells(derlig, 15)).AutoFill Destination:=Range(Cells(derlig, 1), Cells(derlig + derlig2, 15)), Type:=xlFillCopy
    nb = Cells(derlig, 8).Value / derlig2
    Range(Cells(derlig + 1, 8), Cells(derlig + derlig2, 8)).Value = nb
    Range(Cells(derlig + 1, 9), Cells(derlig + derlig2, 9)).Value = 1
    Cells(derlig, 13).FormulaR1C1 = "=IF(RC[3]=0,""DEBLOCAGE"",""BLOCAGE"")"
    Range(Cells(derlig + 1, 13), Cells(derlig + derlig2, 13)).Value = "BLOCAGE"
    Range(Cells(derlig + 1, 12), Cells(derlig + derlig2, 12)).ClearContents
    Cells(derlig, 16).FormulaR1C1 = "=SUMPRODUCT((palette=""BLOCAGE"")*RC[-1])"
    Range(Cells(derlig + 1, 1), Cells(derlig + derlig2, 15)).Font.ColorIndex = 3
    Range(Cells(derlig, 15), Cells(derlig + derlig2, 15)).Value = Cells(derlig, 12).Value
End If
gestion:
Application.EnableEvents = True
End Sub

et en prime, si tu écris dans une cellule vide, l'entourage se fait

à voir dans le code de la feuille (lorsque tu es sous VBE, double-clic sur le nom de la feuille, à gauche....)

code :

Private Sub Worksheet_Change(ByVal Target As Range)
Cells(Target.Row, 1).Resize(1, 13).Borders.LineStyle = xlContinuous
End Sub

Envoi du fichier en cours (par internet)

Edit : modif : fôte d'ortograf

Re,

Donc voilà après quelques galères personnelles ( je m'étais trompé de fichier zip ^^) Je viens de voir la macro que tu as faite et c'est tout simplement magnifique.

Sincèrement un grand merci!!!

La box qui s'ouvre pour avertir qu'il faut remplir la cellule nombre de palette est mvariment la cerise sur le gâteau.

La mise en forme automatique aussi!!

C'est un superbe boulot que tu viens de faire!!!

MERCI MERCI MERCI!!

Rechercher des sujets similaires à "programmation formulation"