Re,
"Jacky67" avait la gentillesse d'élaborer la solution VBA du fichier ci-joint, concernant la gestion des dépenses individuelles d'un certain nombre d'agents, ayant chacun une feuille à son nom, feuille créée depuis la feuille MODELE, feuille masquée.
Les saisies se font dans les colonnes A à L; Net O assurent le calcul du solde actuel de l'agent. Les colonnes R à Z, masquées, servent uniquement à préparer les données pour l'impression, et n'ont pas besoin d'être accessibles à l'utilisateur.
Les saisies sont copiées dans la feuille TOUT, recueillant ainsi les dépenses de tous les agents.
Je voudrais pousser les choses un peu plus loin en créant un système de saisie par Userform (masque de saisie) comprenant des champs de texte (tous sauf "Type dépense") et une Combobox ("Type dépense"), en profitant de la possibilité, élaborée plus haut dans ce fil, de la saisie semi-automatique (au fil des lettres saisies la liste déroulante se réduit pour n'afficher que les choix possibles), pour remplacer la saisie directement dans les cellules. D'ailleurs, initialement "Type dépense" était aussi un champ de texte; dans le code il y en a encore une trace; je l'ai remplacé par la combobox.
J'ai expérimenté sur base de solutions proposées dans ce fil, mais mes expérimentations ne sont pas concluantes.
E.a. il y a donc un userform du nom de "Saisie", qui doit être utilisé pour la saisie de toutes les données.
Quelques mots d'explication:
Les feuilles: AVANCES: le/la responsable distribue de l'argent aux agents; ces avances sont inscrites (moyennant le code de "Jacky67") automatiquement dans les feuilles respectives; il n'y a rien à y modifier
Dans la feuille LISTES il y a évidemment des listes, qui doivent fonctionner comme suit dans un Userform:
* Type de dépenses: on peut saisir uniquement un élément contenu dans la liste, mais manuellement on peut ajouter des éléments à la liste
* Fournisseurs: on peut saisir un élément contenu dans la liste, mais la saisie de nouveaux éléments est possible, et à la première saisie, l'élément est ajouté dans la liste (il me semble qu'il y a quelques années j'avais une liste qui fonctionnait de la sorte)
* Service: limité à 3 choix possibles: A, B et M (=mixte)
Les champs Nbre service A et Nbre service B ne doivent, si c'est faisable, apparaître que si la saise dans Service est "M".
Dans ce cas le montant saisi est réparti proportionellement entre A et B, sur base des chiiffres des Nbre A et Nbre B; question: répartition mieux par VBA? ou plutôt par formule? Dans les colonnes K et L des feuilles individuelles il y a les formules plaçant les montants dans A (colonne K) ou B (colonne L) en fonction de la valeur introduite dans la colonne H (placement du montant entier en cas de A ou B, répartition en cas de M)
Liste étrangère à l'Userform:
* Agents; la solution de Jacky est complète et il n'y a rien a y modifier
Ce qui n'est pas clair dans ma tête: comment l'agent accède-t-il à l'Userform?
* il voit sa feuille et y accède moyennant un bouton
* il ne voit pas la feuille, mais seulement une feuille contenant des boutons avec les noms des agents; il appuye sur le sien et il a accès au masque qui inscrit les saisies dans sa feuille; pour apporter des modifications à une dépense saisie il a accès, moyennant un code, à sa feuille ou bien il procède à la modification moyennant un autre masque.
Il doit en tout cas avoir la possibilité d'imprimer sa feuille à tout moment.
* comment le masque peut-il être rattaché à chaque agent?
Assez compliqué tout ça. Si quelqu'un est tenté de s'y mettre, j'en serais ravi; sinon, je ne peux pas vous en vouloir!
s?
Bon Réveillon et Bonne Année 2020!
Aloha
PS: j'ai supprimé le fichier dans l'éditeur, parce que "Jacky67" m'a conseillé d'utiliser une autre version, et je vais joindre la version plus récente.