Userform et tableau

Dan,

Oui les montants sont rentrés manuellement.

Un code sera peut-être plus stable et fiable ?

Dans la textbox3 , je souhaitais mettre le montant qui sera calculé dans la colonne R

bonjour Dan,

c'est une idée pour les évolutions...

image image image

pour l'insertion des montants on peut imaginer un userform indépendant de ce style ?

Oui les montants sont rentrés manuellement.

Ok.

Un code sera peut-être plus stable et fiable ?

Non du tout. La formule reste le plus simple à moins que vous ayez des milliers de lignes à traiter et dans ce cas ralentirait excel
Si par ailleurs vous vouliez changer quelque chose dans des fichiers contenant des codes, il faut bien souvent les revoir.
Pour s'en convaincre, il suffit de lire un peu sur la toile ou sur ce forum, le nombre de fois où quelqu'un pose une question parce que le projet a changé ou qu'il y a une erreur, etc...Personnellement on pense trop VBA avant d'utiliser les fonctionnalités excel
Les codes VBA devraient d'ailleurs toujours être évités quand on le peut (on arrive trop vite à une suine à gaz avec excel) et ce d'autant avec les tableaux structurés.

Pour votre colonne Q, mettez simplement cette formule en Q6 --> =SI([@[montant reçu]]-[@redristribution]<0;"";[@[montant reçu]]-[@redristribution])

Dites si cela fonctionne

Dans la textbox3 , je souhaitais mettre le montant qui sera calculé dans la colonne R

Ok mais le calcul de la colonne R s'effectue d'après quoi ?


pour l'insertion des montants on peut imaginer un userform indépendant de ce style ?

On les insère où dans le tableau ?

Dan,

On les insère où dans le tableau ?

en colonne N

Ok mais le calcul de la colonne R s'effectue d'après quoi ?

la colonne R c'est la somme de la colonne Q qui sera redistribuée aux agents n'ayant rien reçu de la cagnotte de grève

image

je trouve 0 en colonne O, ce qui me semble bizarre

OUPS Corrigé, il manquait la somme dans la colonne

en colonne L on trouvera la somme de la ligne 5

exemple pour agent 1 : 771 euro

image

il faudrait revoir la colonne I, je pense les résultats négatifs ne sont pas logique, j'ai fait un essai en rajoutant un jour de grève et j'ai mis ceux qui n'avaient pas fait grève jusqu'à présent gréviste mais les chiffres ne sont pas cohérent

je ne peux pas avoir plus à rembourser à ceux qui ont moins fait grève

image

Bonjour

la colonne R c'est la somme de la colonne Q qui sera redistribuée aux agents n'ayant rien reçu de la cagnotte de grève

Ok pour La somme de la colonne Q. Dans votre vue on a une somme de 575 eur. On aura quoi en R ?

en colonne L on trouvera la somme de la ligne 5
exemple pour agent 1 : 771 euro

Dans votre vue je ne vois pas 771 euro. Vous les prenez d'où ?

il faudrait revoir la colonne I, je pense les résultats négatifs ne sont pas logique, j'ai fait un essai en rajoutant un jour de grève et j'ai mis ceux qui n'avaient pas fait grève jusqu'à présent gréviste mais les chiffres ne sont pas cohérent

je ne peux pas avoir plus à rembourser à ceux qui ont moins fait grève

réexpliquez-moi ce que l'on doit trouver avec un exemple
Dans votre vue le montant en D et E doit être identique. Ce qui n'est pas le cas dans votre vue

Dans le code de la perte collective, revoyez ceci --> https://forum.excel-pratique.com/s/goto/1187524

Question : Est-ce que la colonne H doit renseigner quelque chose si l'agent n'est pas en grève et donc pas en couleur orange ?
Car si non, la colonne H sera à 0 et la colonne I aussi
Exemple : si les agents 10 à 17 ne sont pas en grève dans tous les jours mentionnés en feuille 2, la colonne H doit mentionner quelque chose ou pas ?

bonjour Dan,

Ok pour La somme de la colonne Q. Dans votre vue on a une somme de 575 eur. On aura quoi en R ?

au final en R on trouvera la même chose que dans Q, il faut que je revois les colonnes du tableau, c'est 2 tableaux fusionnés de mon ancien fichier ...

Dans votre vue je ne vois pas 771 euro. Vous les prenez d'où ?

c'est le total de la ligne, j'additionne tous les jours de grève, que l'agent soit gréviste ou pas.

Dans votre vue le montant en D et E doit être identique. Il y a surement un code que vous n'avez pas exécuté

Dans le code de la perte collective, revoyez ceci --> https://forum.excel-pratique.com/s/goto/1187524

non je pense que les valeurs sont bonnes ... c'est normal qu'elles soient différentes, vous êtes sure que vous voulez parler des colonnes D et E ?

il faudrait revoir la colonne I, je pense les résultats négatifs ne sont pas logique, j'ai fait un essai en rajoutant un jour de grève et j'ai mis ceux qui n'avaient pas fait grève jusqu'à présent gréviste mais les chiffres ne sont pas cohérent

je ne peux pas avoir plus à rembourser à ceux qui ont moins fait grève.

réexpliquez-moi ce que l'on doit trouver avec un exemple

pour revoir un peu l'ensemble en H si un agent n'a rien perdu (colonne D vide) elle doit être vide (H)

H =D - E

au final en R on trouvera la même chose que dans Q, il faut que je revois les colonnes du tableau, c'est 2 tableaux fusionnés de mon ancien fichier .

Alors un bête formule en R6 --> =[@[à ré-injecter dans le pot commun]]

Dans votre vue je ne vois pas 771 euro. Vous les prenez d'où ?
c'est le total de la ligne, j'additionne tous les jours de grève, que l'agent soit gréviste ou pas.

Ok mais dans votre vue c'est 672 qui est marqué. raison de ma question

Donc là on peut éventuellement compléter cette colonne dans le code Sub calcul_montant_net() mais à voir si on doit y retrouver tous les totaux même si pas en grève. Dites moi

non je pense que les valeurs sont bonnes ... c'est normal qu'elles soient différentes, vous êtes sure que vous voulez parler des colonnes D et E ?

Oui. A surveiller.
Actuellement dans la feuille 2 j'ai ceci. en feuil1 D23 et E23 sont à 6706 euro. Ce qui correspond au total en K de la feuil2

image

pour revoir un peu l'ensemble en H si un agent n'a rien perdu (colonne D vide) elle doit être vide (H)

Je regarde ce point mais le code devra être modifié pour tenir compte de cette colonne D vide


EDIT : en fait dans le code sub sommesicouleur, il faut rajouter la ligne ci-dessous juste au début du code et ce, juste avant la ligne --> set lo = Worksheets("Feuil2")....

Feuil1.ListObjects(1).ListColumns(4).DataBodyRange.ClearContents

Re EDIT :
Pour la colonne H qui doit être vide si D vide, allez dans le code Sub calcul_montant_net(), juste avant la ligne For col = 3 To ......, ajoutez cette ligne

If .DataBodyRange(i, 4) <> vbNullString Then 'verifie que colonne D est vide

Plus bas juste avant le END IF, rajoutez

END IF

Ok mais dans votre vue c'est 672 qui est marqué. raison de ma question

Donc là on peut éventuellement compléter cette colonne dans le code Sub calcul_montant_net() mais à voir si on doit y retrouver tous les totaux même si pas en grève. Dites moi

regardez bien j'ai dans ma vu il y a une colonne en plus à 99 euro qui nous fait 771 au total, la perte si gréviste tous les jours c'est bien le total de la ligne gréviste ou pas gréviste ... la colonne supplémentaire était un essai vous ne devez pas l'avoir dans votre fichier .

on commence à en voir le bout ...en Q les résultats négatifs ne devrait pas être affiché puisque non nécessaire mais la somme de la colonne Q doit être égale à zéro

(entouré de noir - rouge = 0)

image

Bonjour

Je me perds un peu là... surtout que vous changez chaque fois les données dans le fichier
ce serait bien de récapituler un peu
- Colonne D : reprend le total des jours de grève de chaque agent donc total suivant couleur orange en feuil2
- Colonne E : reprend le montant total général en feuil2 (donc dernière cellule en bas à droite du tableau) multiplié par la Quotepart de chaque agent
- Colonne G : on a cette formule --> =SI([@[perte par agent sur paye ]]="";[@[participation à la perte collective(brut)]];"")
- Colonne H : montant si colonne D est vide. Total de la colonne pour chaque jour en feuil2 multiplié par la quotepart agent - le montant de chaque jour de grève. exemple dans ma vue précédente (748,5 * quotepart) - 75 et ce, pour chaque jour
- Colonne I : à vérifier mais pour l'instant on a cette formule --> =SI([@[perte par agent sur paye ]]<>"";$B$4*[@[à rembourser à l''agent (brut)]];"").
si D est vide, la colonne I ne mentionne rien
- Colonne L : Total de la ligne en feuil 2 pour chaque agent qu'il soit en grève ou non
- Colonne N : Rentré manuellement
- Colonne O : on a cette formule --> =INDEX(Tableau2;EQUIV([@NOM];Tableau2[nom];);3)*Tableau1[[#Totaux];[montant reçu]]

Dites moi

bonjour Dan,

Colonne D : reprend le total des jours de grève de chaque agent donc total suivant couleur orange en feuil2
- Colonne E : reprend le montant total général en feuil2 (donc dernière cellule en bas à droite du tableau) multiplié par la Quotepart de chaque agent
- Colonne G : on a cette formule --> =SI([@[perte par agent sur paye ]]="";[@[participation à la perte collective(brut)]];"")

- Colonne I : à vérifier mais pour l'instant on a cette formule --> =SI([@[perte par agent sur paye ]]<>"";$B$4*[@[à rembourser à l''agent (brut)]];"").

si D est vide, la colonne I ne mentionne rien

- Colonne L : Total de la ligne en feuil 2 pour chaque agent qu'il soit en grève ou non

- Colonne N : Rentré manuellement

- Colonne O : on a cette formule --> =INDEX(Tableau2;EQUIV([@NOM];Tableau2[nom];);3)*Tableau1[[#Totaux];[montant reçu]]

correct pour tout ça

- Colonne H : montant si colonne D est vide. Total de la colonne pour chaque jour en feuil2 multiplié par la quotepart agent - le montant de chaque jour de grève. exemple dans ma vue précédente (748,5 * quotepart) - 75 et ce, pour chaque jour

en H on à D - E, perte total grève - effort collectif

Bonjour

- Colonne H : montant si colonne D est vide. Total de la colonne pour chaque jour en feuil2 multiplié par la quotepart agent - le montant de chaque jour de grève. exemple dans ma vue précédente (748,5 * quotepart) - 75 et ce, pour chaque jour

en H on à D - E, perte total grève - effort collectif

Cela est fait par code. Mais avec ce vous dites, cela ne correspond plus à ce que vous m'avez expliqué dans un post précédent.
Si H est toujours égal à D - E : si D est vide on a rien en H ou pas

Avant de vous donner les corrections dans le code Sub calcul_montant_net(), pouvez-vous me confirmer que vous avez bien effectué les deux modif expliquées dans les 2 EDIT de ce post --> https://forum.excel-pratique.com/s/goto/1189767

Bonjour Dan,

Vous parlez bien de la colonne H ?

Actuellement je n'ai rien en H si D est vide .

Pour moi les valeur sont déjà correct. Des que je suis chez moi je vous envoie le fichier

Vous parlez bien de la colonne H ?

Oui

Pour moi les valeur sont déjà correct. Des que je suis chez moi je vous envoie le fichier

Pas sûr. Mais pas besoin de mettre le fichier. A la limite faites les tests sur le fichier V11 que vous avez mis dans un post précédent et montrez-moi une vue des résultats attendus.
Au final si H est toujours D-E, on n'a éventuellement plus besoin de code. Il suffirait de mettre cette formule en H6 qui fait la différence--> =SI([@[perte par agent sur paye ]]<>"";[@[perte par agent sur paye ]]-[@[participation à la perte collective(brut)]];"")
Voyez aussi si correct avec cette formule
Après voyez si on fait avec cette formule ou par code en désactivant les lignes qui remplissent la colonne H
dites moi

Dan,

image

j'ai mis la formule et c'est super, c'est même mieux puisque les chiffre ne sont pas négatif.

après relecture je pense que la colonne R ne sert à rien, en Q les nombres négatif ne devraient pas apparaitre.

les colonnes F et J aussi peuvent être supprimé

la colonne K c'est la colonne E*B4

la colonne M c'est le résultat en pourcent de L - G

exemple avec agent1 depuis cette image :

image

on prend 672 ( somme perdu/ou somme perdu si gréviste ) et 301,01 (calcul de la colonne E, participation à la perte collective/somme réellement perdu par l'agent)

on en fait un produit en croix pour obtenir le pourcentage réelle de la perte .5(301,01*100/672 = 44,79%).

Bonjour

1. En regardant le dernier fichier que vous avez posté (gestion 013-V10) et les différents posts, je m'aperçois qu'il y a une erreur concernant la colonne D
Dans un message précédent, vous aviez dit que les montants de la colonne D doivent tenir compte de la valeur en B4. On avait d'ailleurs ajouté un code spécifique pour cela.

En D6 par exemple on doit avoir 672 * 0.8 et non la valeur 672

2. D'autre part dans votre dernier fichier posté vous n'avez pas changé le code sommesicouleur que je vous avais donné --> https://forum.excel-pratique.com/s/goto/1177913
Donc là déjà je me demande si vous avez corrigé ou pas

bonjour Dan,

En D6 par exemple on doit avoir 672 * 0.8 et non la valeur 672

2. D'autre part dans votre dernier fichier posté vous n'avez pas changé le code sommesicouleur que je vous avais donné --> https://forum.excel-pratique.com/s/goto/1177913

Donc là déjà je me demande si vous avez corrigé ou pas

effectivement, ce n'est pas corrigé mais voulu si je fais la correction il faut corriger aussi la colonne E qui est en"brut", il faut les deux colonnes en brut ou en net...

si elles sont en net , nous n'avons plus besoin de la colonne "I"

effectivement, ce n'est pas corrigé mais voulu si je fais la correction il faut corriger aussi la colonne E qui est en"brut", il faut les deux colonnes en brut ou en net...

si elles sont en net , nous n'avons plus besoin de la colonne "I"

En premier il faut savoir comment vous voulez les choses
Est-ce que vous voulez que la colonne D s'adapte sur le changement de B4 ou pas

le mieux est de s'adapter à B4, on pourra supprimer la colonne "I"

Rechercher des sujets similaires à "userform tableau"