XL 2013 calcul de charge + planification

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bonsoir
Merci cisco, ceci dit, la derniére formule dans ton post 54 donne les mêmes résultat que celle dans le 51, juste que celle du 54 ne fait pas de calcul inutile, s'arrete une fois que le total de test à faire est atteint.

**************************************************
Par ou je dois commencer pour la VBA:
vba.jpg

une question: la macro ne change pas si la furmule dans les cellules change??

Merci d'avance
 

Fichiers joints

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

Il ni a rien à faire dans le code. Il suffit de la lancer : --> Développeur --> Macro --> Sélection de la macro désirée --> Exécuter.

Dans le cas présent, la macro essai F9:
* efface les colonnes de droite (les anciens résultats, au cas où il y en aurait),
* relance le calcul aussi longtemps que nécessaire pour obtenir un OK dans O15,
* affiche les résultats obtenus dans les colonnes de droite,
* prend les conditions à respecter pour une autre semaine,
* relance les calculs jusqu'à avoir OK dans O15
* affiche les résultats obtenus dans les colonnes de droite pour cette nouvelle semaine
* prend les conditions à respecter pour une autre semaine...
etc

Normalement, cela fonctionne pour un nombre quelconque de semaines. Il suffit de remplir les colonnes I:N à partir de la ligne 17, 2 lignes par semaines.

Pour cette macro, le fait de changer les formules dans le tableau I4:N14 ne change rien dans la macro, puisque celle-ci ne fait que relancer le calcul des formules dans ce tableau, mais ne modifie pas ces formules.

@ plus
 
Dernière édition:

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bonjour cisco,
merci de ta promptitude, enfaite c'est le code que veux comprendre. ou il repend les conditions de la formule "SI..."

A+
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

La macro ne reprend pas les formules de la plage I4:O15, mais relance le calcul de cette plage grâce à cette ligne de code :
Code:
Range("I4:O15").Calculate
et fait cela jusqu'à avoir
Code:
Cells(15, 15) = "OK"
autrement dit O15 = "OK".

Autrement dit, les formules fonctionnent toutes seules (pour avoir une autre organisation possible des tests entre les divers employés, il suffit de faire F9, ce qui montrent bien qu'elles sont indépendantes de la macro), et la macro n'est là que pour :
* relancer ces calculs autant de fois que nécessaire pour obtenir OK dans O15 (appuyer sur F9 mille fois de suite, c'est plutôt rébarbatif, donc la macro le fait à notre place)
* faire ces calculs pour plusieurs semaines les unes après les autres
* afficher les résultats dans les colonnes de droite.

Si tu veux comprendre la macro, poses moi des questions par rapport aux lignes que tu ne comprends pas.

@plus
 
Dernière édition:

jasmine

XLDnaute Junior
Re : calcul de charge + planification

bonsoir
TU peux m'expliquer le:
if J=5000
ET

Range("I4:O15").Copy 'copie le tableau I4:O15 dans le presse papier (puisque o15="OK", et que les résultats conviennent
Range("R" & (4 + (i - 1) * 13)).PasteSpecial xlValues 'Colle les valeurs du presse papier à partir de la cellule dans la colonne R sur la ligne 4 + (i - 1) * 13
Range("R" & (4 + (i - 1) * 13)).PasteSpecial xlPasteFormats 'Colle le format de la plage I4:O15 contenu dans le presse papier à partie de la cellule dans la colonne R sur la ligne 4 + (1 -1)* 13
Range("Q" & (4 + (i - 1) * 13)) = "semaine " & i 'Colle le texte "semaine i" dans la colonne Q sur la ligne...
Range("Q" & (5 + (i - 1) * 13)) = j 'Colle j, le nombre de tirage ayant été utilisé pour obtenir un ensemble

Merci d'avance
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonsoir

Code:
If j=5000
J'ai limité le nombre de tirage par semaine à 5000. Si O15 n'indique pas OK, la macro relance le calcul du tableau I4:O15, et cela jusqu'à obtenir soit O15 = "OK" soit J = 5000. S'il ni avait pas cette valeur limite, on peut imaginer des cas où la macro tournerai sans cesse... Si jamais tu viens à avoir certaines semaines posant problème (la macro ne trouve pas de solutions convenant), tu peux relancer la macro après avoir remplacé cette valeur par un nombre plus important...

Code:
Range("I4:O15").Copy
La macro copie dans le presse papier la plage I4:O15
Code:
Range("R" & (4 + (i - 1) * 13)).PasteSpecial xlValues
La macro colle uniquement les valeurs (donc pas les formules mais le résultat de ces formules) de la plage I4:O15 sur la cellule R(4 + (i - 1) * 13) et ses voisines, par exemple pour la 11ème semaine testée, en R134 (cette cellule est la cellule en haut à gauche de la plage collée). Cela permet de mettre les résultats de chaque semaine les uns en dessous de autres, sans écraser les résultats de la semaine précédente.

Code:
Range("R" & (4 + (i - 1) * 13)).PasteSpecial xlPasteFormats
Idem pour le format (pas indispensable puisqu'on n'a pas mis de format spécial dans le tableau I4:O15, mais, si tu veux modifier la présentation de la partie I4:O15, cette modification sera prise automatiquement en compte dans les colonnes à droite)

Code:
Range("Q" & (4 + (i - 1) * 13)) = "semaine " & i ...
La macro écrit dans la colonne Q semaine 1, semaine 2, semaine 3 ... pour que tu repères facilement à quelle semaine correspondent les valeurs dans les colonnes à droite

Code:
Range("Q" & (5 + (i - 1) * 13)) = j
La macro écrit dans la colonne Q, juste en dessous de semaine i, le nombre de tirages qui ont été nécessaires pour obtenir les valeurs présentées à droite (en réalité, c'est j - 1 et pas j). Cela donne une idée de la disponibilité de l'équipe : un petit nombre montre qu'il y a certainement moyen de faire faire davantage de tests, un grand nombre, qu'on approche les limites, le potentiel max de l'équipe. Pour mémoriser la signification de ce nombre, tu peux modifier cette ligne de code comme suit :
Code:
Range("Q" & (5 + (i - 1) * 13)) = j &" tirages au sort"
@ plus
 
Dernière édition:

jasmine

XLDnaute Junior
Re : calcul de charge + planification

ça commence à venir :), je coprends mieux, en tout cas merci. donc je remplace:

Range("Q" & (5 + (i - 1) * 13)) = j 'Colle j, le nombre de tirage ayant été utilisé pour obtenir un ensemble de résultats convenant (nombre d'heures nécessaires pour les tests, ligne 15, corrects, et nbre d'heures hebdomadaires par employés <= 35 h)

PAR

Range("Q" & (5 + (i - 1) * 13)) = j " tirages au sort" Colle j, le nombre de tirage ayant été utilisé pour obtenir un ensemble de résultats convenant (nombre d'heures nécessaires pour les tests, ligne 15, corrects, et nbre d'heures hebdomadaires par employés <= 35 h)
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonsoir

Attention, tous les caractères, et mêmes les espaces vides, peuvent compter dans un code. Ici, c'est

Range("Q" & (5 + (i - 1) * 13)) = j &" tirages au sort" 'Colle j, le nombre de tirage ayant été utilisé pour obtenir un ensemble de résultats convenant (nombre d'heures nécessaires pour les tests, ligne 15, corrects, et nbre d'heures hebdomadaires par employés <= 35 h)
qu'il faut écrire

Le & associe la valeur de j au texte " tirages au sort"
et l'apostrophe ' indique que la suite de la ligne est un commentaire, donc n'est pas du code.

@ plus
 

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bien noté merci,
je vais l'appliquer à mon fichier sur plusieur semaines pour voir ce que ça donne. je tiens au courant.
bonne journée
A+
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

Je suis en train de tester une autre méthode. Une petite question au passage : Est-ce que dans ton fichier réel tu as plus d'employés ou plus de types de test que sur le fichier exemple ?

@ plus
 

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bonjour
dans mon fichier, j'ai plus d'employés pour les mêmes types de tests.
c'est pour la macro?

merci et A+
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

J'essaye de trouver une méthode disant à coup sûr si il existe une répartition des horaires permettant d'effectuer tous les tests. La méthode précédente trouve des exemples, mais lorsqu'elle n'en trouve pas, cela ne veut pas dire qu'il ni y en a pas.

@ plus
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

Est-ce que tu as réussi à adapter le fichier et la macro à ton cas réel ? Si non, combien as-tu d'employés dans la réalité ?

@ plus
 

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bonjour cisco
je n'ai pas encore appliqué la macro à mon fichier. j'ai repris la tableau avec la formule revue ce week end.
Dans mon fichier, j'ai 14 Employés, dont:
3 interimaires (ne sont pas toujours present)
1 stagaire: present 1/2 MOIS
1 opérateur qui travail sur un autre projet (n'est pas toujours a son poste)
retenons 14 employés et en foction des 4 derniérs la ressource peut baisser ou augumenter.
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

J'ai adapté le fichier et la macro pour que cela fonctionne avec 16 employés au max. A toi de vérifier, un oubli est tellement vite arrivé.

@ plus
 

Fichiers joints

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bonjour,
je refais le fichier, pendant que jy suis, la cellules H3 est elle necessaire sinon est ce possible de la suprimer? que represente les celulles I22-N23. j'ai vu que les cellules I22-N22 ne reprennent que les sommes en I20-N20. Mais sur quelles bases sont calculées les cellules 123-N23 qi represente le normbre de lot.
O_O
A+
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

Bonjour,
je refais le fichier, pendant que jy suis, la cellules H3 est elle necessaire sinon est ce possible de la suprimer?
La formule dans la cellule H3 est là pour te signaler s'il y a des résultats ne convenant pas dans les colonnes de droite. D'ailleurs, il y a une erreur à la fin de cette formule : c'est -2)/18) et non -2)/13).

que represente les celulles I22-N23
La macro ne fait pas les calculs dans la plage I4:N19 directement avec les valeurs de la semaine x prises dans le tableau en dessous de I24:N24, mais avec celles de I22:N23. Lorsqu'elle trouve une répartition convenant, elle la colle dans les colonnes de droite, puis va copier les données de la semaine x+1 et les colle dans I22:N23, et relance les tirages dans I4:N19.

j'ai vu que les cellules I22-N22 ne reprennent que les sommes en I20-N20
C'est plutôt le contraire : On impose I22:N22 et les calculs dans I4:N20 sont faits plusieurs fois de manière à obtenir I20:N20=I22:N22.

Mais sur quelles bases sont calculées les cellules I23-N23 qi represente le normbre de lot
C'est toi qui doit remplir les plages I25:N25 pour la semaine 1, I27:N27 pour la semaine 2 et ainsi de suite. C'est ton cahier des charges.
La macro ira placer au fur et à mesure ces valeurs dans I23-N23.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonjour

Combien de test d'un type au max, environ, as-tu à faire faire ? Autrement dit, quelle est l'ordre de grandeur de la valeur la plus grande à mettre dans la plage I23:N23 ?

@ plus
 

jasmine

XLDnaute Junior
Re : calcul de charge + planification

Bonjour
dans mes données, le maximum est 30, aprés on ne peut pas exclure qu'il en ai plus.
Merci, A+
 

CISCO

XLDnaute Barbatruc
Re : calcul de charge + planification

Bonsoir

J'espérai avoir trouvé une autre méthode te donnant à coup sûr les diverses répartitions possibles. Ce qui signifie, que si cette méthode n'en trouve pas, c'est qu'il y en a pas...

Malheureusement, avec l'exemple que j'essaye de traiter (28 tests dans une des colonnes, une dizaine dans les autres) cela fait environ 10 ^11 cas à contrôler, et mon ordi rame beaucoup trop pour que cela soit utilisable tel que. Il faudrait peut être une journée entière pour traiter tous ces cas...

@ plus
 

Discussions similaires


Haut Bas