Distribution du travail par noms

Le
Denys
Bonjour,

J'ai 9 feuilles excel nommées comme suit: Employés, Résultats, Lundi,=
Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche

Sur la feuille Résultats, j'ai généralememt entre 1600 et 2000 lignes=
d'information de la colonne A à la colonne Y.

Dans la feuille résultats, il y a une date de rapport en colonne A. Avec =
une macro, je répartis le travail du lundi dans la feuille lundi etc.

Si je suppose que le lundi il y a 287 éléments, le mardi 323 etc. je=
souhaiterais pouvoir mettre en colonne Z le prénom des employés qui au=
ront à traiter l'information.

Donc, comment avoir une mcaro qui distribuerait le prénom en colonne Z se=
lon le nombre souhaité.. Par exemple lundi je veux que Marc ait 75 items,=
Paul 38, Pierre 42 etc.

En colonne A de la feuille Employés, j'aurais le nom des employés, en p=
artant de la ligne 4. TotDist veut dire Total Distribué et le montant ins=
crit dans les cellules B3 à H3 serait le total des cellules de la colonne=
correspondate.

L'usager pourrait donc inscrire le montant à distribuer à chaque employ=
é.

Col A B C D E F G H
Employés Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Total 238 361 222 352 289 84 3
TotDist 238 0 0 0 0 0 0
Paul 38
Pierre 74
Josée 44
Lucie 59
Daniel 23
Monique 0

Ensuite, et c'est là où j'ai besoin de votre aide, l'usager n'aurait qu=
'à cliquer sur un bouton afin que le nombre exact de lignes soit assign=
é à chaque employé par jour correspondant dans la colonne Z.

Par exemple, si je veux distribuer 38 items à Paul le lundi, il faudrait =
que le nom Paul apparaisse dans la colonne Z 38 fois (donc de Z2 à Z39) P=
ar la suite, si le nom de Pierre y est 74 fois, ce devrait être à parti=
r de Z40 jusqu'à Z114 etc etc pour tous les jours de la semaine

Est-ce que quelqu'un saurait comment s'y prendre ?

Merci pour votre temps

Denys
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
GL
Le #26346894
Le 31/03/2015 15:53, Denys a écrit :
Bonjour,

J'ai 9 feuilles excel nommées comme suit: Employés, Résultats, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche

Sur la feuille Résultats, j'ai généralememt entre 1600 et 2000 lignes d'information de la colonne A à la colonne Y.

Dans la feuille résultats, il y a une date de rapport en colonne A. Avec une macro, je répartis le travail du lundi dans la feuille lundi etc....

Si je suppose que le lundi il y a 287 éléments, le mardi 323 etc.... je souhaiterais pouvoir mettre en colonne Z le prénom des employés qui auront à traiter l'information.

Donc, comment avoir une mcaro qui distribuerait le prénom en colonne Z selon le nombre souhaité.. Par exemple lundi je veux que Marc ait 75 items, Paul 38, Pierre 42 etc....

En colonne A de la feuille Employés, j'aurais le nom des employés, en partant de la ligne 4. TotDist veut dire Total Distribué et le montant inscrit dans les cellules B3 à H3 serait le total des cellules de la colonne correspondate.

L'usager pourrait donc inscrire le montant à distribuer à chaque employé.

Col A B C D E F G H
Employés Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Total 238 361 222 352 289 84 3
TotDist 238 0 0 0 0 0 0
Paul 38
Pierre 74
Josée 44
Lucie 59
Daniel 23
Monique 0

Ensuite, et c'est là où j'ai besoin de votre aide, l'usager n'aurait qu'à cliquer sur un bouton afin que le nombre exact de lignes soit assigné à chaque employé par jour correspondant dans la colonne Z....

Par exemple, si je veux distribuer 38 items à Paul le lundi, il faudrait que le nom Paul apparaisse dans la colonne Z 38 fois (donc de Z2 à Z39) Par la suite, si le nom de Pierre y est 74 fois, ce devrait être à partir de Z40 jusqu'à Z114 etc... etc pour tous les jours de la semaine...

Est-ce que quelqu'un saurait comment s'y prendre ?



Oui facile ;-) Il vous faut la somme cumulée : dans votre exemple :

Paul 38 38
Pierre 74 112
Josée 44 156
Lucie 59 215
Daniel 23 238
Monique 0 238

Ensuite vous inscrivez une formule matricielle en cellule Z1 :
{=SOMME(SI(LIGNE()>$K$4:$K$9;1))}
($K$4:$K$9 est l'adresse de la somme cumulée)

Et vous recopiez cette formule vers le bas : vous aurez 38 zéros pour
Paul, 74 "1" pour Pierre, 44 "2" pour Josée etc. Avec

=INDEX($A$4:$A$9;Z1+1)
($A$4:$A$9 est l'adresse des noms d'employés)

vous récupérez les noms.

Florent.




Merci pour votre temps

Denys

MichD
Le #26346904
Bonjour,

Un petit fichier exemple pour illustrer le propos.
Denys
Le #26346903
Bonjour Florent,

Merci beaucoup....seulement, ça ne fonctionne que pour le premier nom...p our le reste, le nombre ne correspond pas...probablement parce qu'excel ne prend pas en considération les premiers résultats...

Dans l'exemple, cela fonctionne pour les lignes 1 à 55, ensuite 56 à 70 et ensuite les deux suivantes...

Carol 55
Cathy 70
Monique 72
Daniel 72
Sebastien72

Ce qui me semble logique.... à moins que j'aie manqué quelque chose...

http://cjoint.com/?3CFszKoE5k6

Le fichier donne les résultats

Merci

Denys
GL
Le #26346917
Le 31/03/2015 18:13, Denys a écrit :
Bonjour Florent,

Merci beaucoup....seulement, ça ne fonctionne que pour le premier nom...pour le reste, le nombre ne correspond pas...probablement parce qu'excel ne prend pas en considération les premiers résultats...

Dans l'exemple, cela fonctionne pour les lignes 1 à 55, ensuite 56 à 70 et ensuite les deux suivantes...

Carol 55
Cathy 70
Monique 72
Daniel 72
Sebastien72

Ce qui me semble logique.... à moins que j'aie manqué quelque chose...



Non je ne vois votre problème, ça semble fonctionner.
Vous avez peut-être validé la formule matricielle en un seul morceau,
ici, c'est bien une formule matricielle, mais qui renvoie un scalaire,
donc il faut la valider sur une seule cellule... à recopier vers le bas.

http://cjoint.com/?3CFtGOfcZY2

A moins que j'ai, à mon tour, raté quelque chose ;-)

Bonne soirée.


http://cjoint.com/?3CFszKoE5k6

Le fichier donne les résultats

Merci

Denys

Denys
Le #26346922
Bonjour Florent,

Je vois où était mon erreur.....c'était de ne pas avoir additionné le nombre de lignes comme vous avez fait en colonne F....

Ca va être plus facile maintenant....Je vais mettre tout ça en VBA..

merci infiniment....

Denys

P.S. si j'ai un problème... je me permettrai de revenir.... Merci encor e...
Denys
Le #26346943
Le mardi 31 mars 2015 14:08:11 UTC-4, MichD a écrit :
Désolé, code corrigé.


http://cjoint.com/?ECFut6gQXHj



Bonjour Denis

Super.... le nombre de lignes n'étant jamais le même à tous les jours , ni les mêmes employés, je vais essayer d'adapter.... Merci infiniment , je vais sauver beaucoup de temps...

Denys
GL
Le #26346946
Le 31/03/2015 21:13, Denys a écrit :
Le mardi 31 mars 2015 14:08:11 UTC-4, MichD a écrit :
Désolé, code corrigé.


http://cjoint.com/?ECFut6gQXHj



Bonjour Denis

Super.... le nombre de lignes n'étant jamais le même à tous les jours, ni les mêmes employés, je vais essayer d'adapter.... Merci infiniment, je vais sauver beaucoup de temps...

Denys



On dit gagner du temps, en français, et sauver en anglais...
Bonne soirée.
MichD
Le #26346972
Dans une autre feuille ou dans la même feuille, tu crées une liste
d'employés avec le nombre d’emplois qui leur sont attribués.

Je crois que la procédure peut s'appliquer, peu importe de nombre d'employés.

http://cjoint.com/?EDba5rOtQcK
MichD
Le #26346975
Dans la procédure, il y a une coquille,

identifie cette ligne de code :
Nb = Application.RandBetween(1, 341)

Et

remplace-la par celle-ci :
Nb = Application.RandBetween(1, X)
Publicité
Poster une réponse
Anonyme