Userform et tableau

j'ai corrigé mais j'ai toujours des problèmes ...

Bonjour

Hum... bon j'ai corrigé de mon coté et la feuil1 affiche ceci

presse papier02

Juste non ?

bonjour DAN

à partir de l'agent 10 je ne devrait avoir rien à rembourser puisqu'ils n'ont pas fait grève

5greve-013-10.xlsm (73.09 Ko)

...

mais moi j'ai pas le même problème j'ai rien qui ne se calcul...

c'est fou cela, mais à nouveau dans votre dernier fichier posté vous ne faites rien de ce que j'ai écris ici https://forum.excel-pratique.com/s/goto/1187878

Le résultat posté ici https://forum.excel-pratique.com/s/goto/1187974 c'est le résultat sur votre fichier V10 (posté ici https://forum.excel-pratique.com/s/goto/1187829) et modifié suivant le lien ci-dessus

mais moi j'ai pas le même problème j'ai rien qui ne se calcul...

Tant que vous ne faites pas ce que je vous écrit on ne sait pas avancer
A moins que je m'explique mal sur ce que vous devez faire ou que vous ne comprenez pas ?

Bonjour DAN,

image

Voila ce que je trouve, j'ai encore une erreur sur l'agent 12 effectivement (j'avais 2 agents 10 j'ai voulu changer le nom mais ça n'a pas fonctionné, ce qui me fais penser de rajouter un bouton "effacer agent").

que je n'ai rien dans la colonne "perte par agent sur paye(NET)" de l'agent 12 à17 je trouve ça normal vu qu'il n'ont rien perdu

du coup, en colonne H je dois avoir (D - E) du coup ça me donne un résultat positif puisque sur l'ensemble de la grève l'agent est déficitaire

pour les agents de la ligne 15 à 22 n'ayant pas perdu d'argent pendant la grève le résultat sera négatif , cette argent sera redistribué au agent déficitaire.

9greve-013-10.xlsm (80.72 Ko)

Bonjour

Bon là cela avance mieux !

Mais il reste encore deux codes que vous n'avez pas déplacés :
1. le code Sub calcul_montant_net est trouvé en double dans le fichier. Il doit être uniquement dans le module 1. Le code Sub calcul_montant_net() qui se trouve dans la Feuil1 en dessous du code Private Sub Worksheet_Change doit être supprimé comme déjà écrit plusieurs fois...

2. le code Sub SommeColonnesTableau2() ne sert à rien. Si vous voulez absolument garder mettez-le dans le Module 3 et désactivez-le.

Mais au final, peut être en fait que vous ne voulez pas les supprimer donc de ce coté j'arrête de vous l'écrire vu qu'à chaque fois je retrouve ces codes mélangés avec ceux qui sont utiles.


Voila ce que je trouve, j'ai encore une erreur sur l'agent 12 effectivement (j'avais 2 agents 10 j'ai voulu changer le nom mais ça n'a pas fonctionné,
....
du coup, en colonne H je dois avoir (D - E) du coup ça me donne un résultat positif puisque sur l'ensemble de la grève l'agent est déficitaire

Je n'ai pas compris le résultat positif dont vous parlez. Par contre, j'ai remarqué quelque chose qu'il faut modifier dans le code Sub calcul_montant_net() que je vous ai proposé.

Modifiez-le comme ceci:

1. Juste au-dessus de la ligne QTAgent = TSData.DataBodyRange(ligneagent, 3), on trouve un END IF

Il faut déplacer ce END IF plus bas juste avant la ligne --> ligne = 0

2. Ensuite remplacez cette ligne

.DataBodyRange(i, 8) = pertecolagent

par celle-ci

.DataBodyRange(i, 8) = Round(pertecolagent,2) 'arrondir a deux chiffres apres virgule

Là cela fonctionne bien mais refaites un test et dites-moi

Si ok je pense que l'on on passe au point "à donner caisse" ? -->https://forum.excel-pratique.com/s/goto/1179036

bonjour DAN,

enfin super !! pour moi tout à l'air correct et j'ai fait les derniers ajustement selon vos correction.

donc en ce qui concernent à "donner pour la caisse"

image

c'est là où ça se complique qu'il faut trouver la bonne logique : en colonne I tout les résultats sont négatif il faut trouver la logique qui fait que le personnel à qui on doit de l'argent soit négatif et les autres positif.

le rouge doit servir à rembourser le vert

en H on doit trouver D - E et du coup si D est vide, H sera négatif puisque c'est de l'argent à injecter dans la cagnotte, du coup colonne G

la dernier version

6greve-013-11.xlsm (76.57 Ko)

Bonjour,

pour moi tout à l'air correct et j'ai fait les derniers ajustement selon vos correction.

Non du tout ! Vous y tenez absolument à mettre votre code Sub calcul_montant_net() dans la feuil1 plutot que le module 1.
Donc là je ne sais plus ce que je dois faire là ou si le plus simple est que je le fasse moi-même

- feuil en rouge
- Modules en bleu

presse papier02

Pour continuer sur votre post :

le rouge doit servir à rembourser le vert

Ok le montant total rouge et vert sont identiques en valeur absolues

en colonne I tout les résultats sont négatif

est-ce correct pour vous ?


Après Si D est vide, est-ce à dire que G égale la valeur de E ?
Exemple D15 est vide --> G15 = E15 ou G15 doit être vide et E15 doit prendre le montant de G15

bonjour DAN,

Non du tout ! Vous y tenez absolument à mettre votre code Sub calcul_montant_net() dans la feuil1 plutot que le module 1.

Donc là je ne sais plus ce que je dois faire là ou si le plus simple est que je le fasse moi-même

dernière correction effectuée

en colonne I tout les résultats sont négatif

est-ce correct pour vous ?

du coup non, ceux qui n'ont rien en D ne doivent avoir rien en I (pas de perte sur salaire, donc rien à leurs rendre)

Après Si D est vide, est-ce à dire que G égale la valeur de E ?

oui c'est tout a fait ça

au final si je reprends mon tableau avec les couleurs :

la somme du rouge doit être = à la somme du vert , au final les gens qui n'ont rien perdu, remboursent la perte des grévistes

Bonjour

en fonction de votre dernier post et du dernier fichier, on arriverait à ceci ?

image

Si correct, je vous donne les modifications à effectuer

Bonjour Dan,

C'est tout à fait ça , du coup je me demande l'utilité d'afficher la colonne G (les montants en brut ?

Re,

du coup je me demande l'utilité d'afficher la colonne G (les montants en brut ?

Là il faut voir évidemment. Vous voudriez avoir quel montant à cet endroit ?

Voici déjà ce que vous pouvez faire pour la colonne I
1. cliquez sur I6
2. collez cette formule en lieu et place --> =SI([@[perte par agent sur paye ]]<>"";$B$4*[@[à rembourser à l''agent (brut)]];"")

Ne me repostez par votre fichier.

Là il faut voir évidemment. Vous voudriez avoir quel montant à cet endroit ?

je pense qu'on peut masquer la colonne ?

la colonne J peut être aussi supprimé aussi puisque même montant que la colonne I

je pense qu'on peut masquer la colonne ?

Oui, c'est une possibilité. Si un jour elle n'est plus utile on pourra la supprimer mais cela nécessitera d'adapter les codes. A réfléchir... et si conservée, on doit modifier la formule. Donnez moi votre décision

la colonne J peut être aussi supprimé aussi puisque même montant que la colonne I

Ok je la supprime dans mon fichier de travail


Quel sera le point suivant ?

bonjour DAN,

Quel sera le point suivant ?

la 1er partie on peut dire qu'elle est résolue puisque le calcul de la répartition de la perte collective et maintenant terminé.

la 2eme partie sera :

de repartir la somme de la colonne "N" c'est de l'argent reçu par les agents gréviste venant de donateurs anonymes (somme à rentrer manuellement, à partir de userform "ajout agent" ?), cette argent sera à redistribuer à tout les agents de l'équipe en fonction de leurs QT.

cette argent comme il est redistribué longtemps après et seulement aux agents grévistes ça demande un calcul:

la somme de l'argent reçu " cagnotte de grève" repartie à tout les agents que l'on appellera "redistribution" devra être déduit de la colonne "N" on en déduirai la colonne "Q"

après j'ai plein d'autre idée pour améliorer et augmenter les capacité du logiciel comme :

- pouvoir individualiser le type de grève car un agent peut faire grève 1h et les autres toutes la journée (matin, nuit ou AM)

- la possibilité de modifier une journée de grève

- ...

Bonjour

la 2eme partie sera : de repartir la somme de la colonne "N" c'est de l'argent reçu par les agents gréviste venant de donateurs anonymes (somme à rentrer manuellement, à partir de userform "ajout agent" ?), cette argent sera à redistribuer à tout les agents de l'équipe en fonction de leurs QT.

Actuellement ce n'est pas prévu dans une des deux USerform ... Vous feriez cela dans l'userform 1 ??

la somme de l'argent reçu " cagnotte de grève" repartie à tout les agents que l'on appellera "redistribution" devra être déduit de la colonne "N" on en déduirai la colonne "Q"

Donc somme de la cagnotte de grève c'est la colonne N ?

Il faudrait que je comprenne par un exemple, mettons avec l'agent 1
Ne me donner pas de fichier mais simplement l'exemple avec référence des cellules

bonjour Dan,

comment allez-vous ?

Actuellement ce n'est pas prévu dans une des deux USerform ... Vous feriez cela dans l'userform 1 ??

oui je pense que c'est le plus logique ou alors en créer un nouveau où on y mettrais que ça...

Donc somme de la cagnotte de grève c'est la colonne N ?

Il faudrait que je comprenne par un exemple, mettons avec l'agent 1

oui pour la colonne N.

dans l'exemple, en colonne N la redistribution de la cagnotte au agent gréviste ayant perdu de l'argent : le total 1451 est à redistribuer à tout les agents

exemple : AGENT 1 1451 * 4,49 % = 65,13 euro (résultat à insérer en colonne O)

pour la phase d'après c'est là où c'est plus difficile à expliquer .

Les agents ayant déjà touché de l'argent de la cagnotte "créé" par l'équipe, colonne "à rembourser à l'agent(net)" (la colonne brut pourrait elle aussi être masqué ...)

ils vont devoir en redistribuer une partie, ce qui donne

exemple agent 1:

120 - 65,149 = 54,851 , il aura 54,87 à redonner ( en colonne Q)

image

les montants négatifs en colonne Q ne serait pas afficher

Bonjour

oui je pense que c'est le plus logique ou alors en créer un nouveau où on y mettrais que ça...

J'éviterais de compliquer. DAns l'userform1, vous avez la textbox3 "à donner", à quoi sert-elle ?

dans l'exemple, en colonne N la redistribution de la cagnotte au agent gréviste ayant perdu de l'argent : le total 1451 est à redistribuer à tout les agents

Vous me montrez une vue mais vous me dites pas d'où viennent les montants que je vois en colonne N. Vous les avez entrés manuellement ?

Après soit on fait un code ou plus facile avec cette formule placée en O6 --> =INDEX(Tableau2;EQUIV([@NOM];Tableau2[nom];);3)*Tableau1[[#Totaux];[montant reçu]]
Au final le choix d'un code ne se justifierait que si vous avez énormément d'agents qui seront dans le tableau.

Rechercher des sujets similaires à "userform tableau"