Automatiser un déversement de données

Salut les amis,

J'aurais grand besoin de votre aide pour mener à terme, à l'aide des macros ou de VBA en général, mon projet ci-joint.

Voici quelques précisions concernant ce que j'ai déjà fait :

1. une 1ère feuille "Paramètres", contient toutes les infos de base du classeur : contenu des listes déroulantes, liste des noms réutilisés.

2. les autres feuilles contiennent des tableaux réutilisant, selon le but recherché, ces informations en question.

Voici ce dont j'aurais besoin, si vous voulez bien m'aider :

1. sachant que le tableau de la feuille "Enregistrements" est ce que j'appelle : le formulaire standard (pour mon projet) d'entrée de données;

2. comment faire, avec VBA si nécessaire ou utile, pour qu'il se présente toujours vide, prêt à être rempli tous les jours, pour chacun des jours d'un mois donné -car il s'agit d'un suivi journalier de consommation de nourriture, avec les coûts correspondants- ? ;

3. qu'il déverse les infos, selon la date indiquée dans "B66" de la feuille "Enregistrements", pour chaque nom, pour chaque journée, dans les cases correspondantes de la feuille "Suivi conso" (récapitulatif qui est mensuel), par un bouton de contrôles : "déversement", éventuellement, car je suis ouvert à toute proposition autre ?

4. puis, je souhaiterais, si possible, faire une sauvegarde des données des tableaux mensuels ""Suivi conso", par trimestre, au fur et à mesure, dans un dossier différent, histoire de ne pas trop alourdir le classeur;

5. et enfin, pouvoir revenir sur un enregistrement passé, pour modifications ou consultation.

Merci d'avance pour l'aide que vous voudrez bien m'apporter. Toutefois, connaissant la complication et la "quantité" de l'aide que je sollicite, je me permets d'ajouter que même une aide partielle, portant sur une partie seulement de mes questions, me serait précieuse.

Cordialement, Xavier.

54exemple0.xlsx (215.49 Ko)

Bonjour

Pour commencer

Peux tu m'indiquer la signification de ton tableau dans la page "Enregistrements" ?

Que l'on note n'importe quelle entrée, quel plat Africain ou quel plat Européen, cette information n'est pas recopiée dans le tableau de la page "Suivi conso"

On a besoin de seulement savoir les quantités

A l'occasion on peut modifier les pages, surtout la page "Suivi conso"

Date du mois en ligne 1

Réorganisation des différents plats pour les mettre dans le même ordre que dans la page "Enregistrements"

A suivre

Salut Banzai64,

A tes questions, je vois que tu as très bien compris la configuration globale que j'essaie d'obtenir, et je t'en remercie.

Le tableau de la feuille "Enregistrements" devrait me servir de formulaire de saisie des données : noms de plats, quantités, et la date concernée (celle du jour de la consommation) ; par ailleurs, il devrait pouvoir déverser dans un tableau comme celui de la feuille "Suivi conso" (pour lequel il va falloir apporter quelques modifications) les informations, sans le détails du nom de plat.

Tes suggestions relatives à l'emplacement de la date du mois, dans la feuille "Suivi conso", et à la réorganisation des différents plats, me semblent bien plus logiques que ce que j'avais déjà fait : je suis partant pour suivre ton principe, le mien étant beaucoup trop brouillon. C'est la preuve que j'avais besoin d'un regard neuf !

Pourrais-tu m'aider à ce que le tableau de la feuille "Enregistrements" serve de formulaire standard de saisie des infos, apparaissant toujours vide pour chaque nouvelle entrée, à une date donnée, et déversant son contenu après enregistrement, dans une base de données, qui ressemblerait à la feuille "suivi conso" en plus élaborée (mieux organisée), s'il te plaît ? Je crois que dans ce projet, je me suis emmêlé les pinceaux !

Cordialement, Xavier.

Bonjour

Un début

Salut cher Banzai64,

Je te remercie pour ta réponse : elle m'est précieuse et a poussé mon raisonnement dans le bon sens de la logique.

Je vais répondre à quelques questions posées dans le fichier que tu as joint :

1. les colonnes de la feuille "Enregistrements" auxquelles tu fais allusions, dans ton fichier joint, servent à renseigner les noms des plats (exemple de nom de plat européen : "Entrecôte/Beurre Maître d'Hotel"), par une liste déroulante préétablie dans la feuille "Paramètres". En effet, il me faut, en plus de la nature des consommations (entrées, plat africain, plat européen), et des quantités, avoir les noms des plats choisis, car ils peuvent m'être demandés dans un rapport de suivi détaillé. Et, comme tu as pu le constater, le tableau que j'avais élaboré et que tu as, à merveille, perfectionné (je vais d'ailleurs retenir ton tableau qui me semble bien plus pratique), ne renseigne pas sur le nom des entrées et autres ("salade de légumes" pour entrée, par exemple).

2. il est vrai que les données des trois colonnes de la feuille "Enregistrements" auxquelles tu fais allusions, ne sont recopiées nulle part : c'est le problème, et c'est parce que je ne sais pas comment configurer un seul tableau qui intégrerait tous les détails à la fois. J'avais pensé, mais à tort, sans doutes, faire des sauvegardes de deux tableaux différents à la fois : un premier qui renseignerait sur les détails des noms de repas choisis : il ressemblerait alors à celui de la feuille "Enregistrements", même s'il ne sert que pour une journée (une date), dans ce qu'il renseigne ; et un deuxième tableau qui serait très exactement celui que tu m'as proposé dans la feuille "Juillet", qui lui, récapitulerait pour tout le mois, mais sans le détail des noms de repas (Salade chinoise, par exemple). Vu la complication de cet enregistrement double et aux informations redondantes, je ne sais plus comment faire au final.

Ma question serait alors :

Comment tu verrais, toi, l'organisation de tout le projet, de sorte à ce qu'on ait la possibilité d'enregistrer tous les jours les consommation avec : la date, le consommateur, le nom de sa consommation ("Poulet grillé/Accompagnement frites", pour l'exemple), la nature (entrée, plat afric. ou europ.) de la consommation (car le prix est fixé sur cette base), et enfin les quantités consommées pour chaque entrée, plat afric. ou europ. (parce qu'elles varient) ? Pourrait-on renseigner tout cela dans un seul tableau, puis utiliser ta macro pour recopier le tout ?

Tu auras certainement compris que c'est à un problème d'organisation de données (comme dans l'élaboration d'un modèle conceptuel de données de la méthode MERISE pour la comparaison), que je suis confronté.

Tout ce qu'il me manque maintenant, grâce à ce que tu m'as proposé, c'est comment faire pour intégrer dans un tableau ordonné, les noms des différents choix pour les entrées, plats afric. ou europ.

Je te remercie pour tes efforts, car je sais que j'en demande beaucoup, et qu'il faut vraiment vouloir m'aider pour accepter de se pencher là-dessus.

Très cordialement, Xavier.

Bonjour

Une question

Pour une personne la quantité sera toujours 1 pour l'entrée, 1 pour le plat africain et 1 pour le plat européen ?

Sinon comment noter les différents plats ?

Et mince cela fait 2 questions

Salut Banzai64,

Oui absolument, elle est bien là, la complication : la consommation d'une personne à une date donnée, pour un jour, pourrait bien être 2 entrées différentes uniquement ; ou d'autres combinaisons avec plusieurs entrés, P. afr. ou, europ., il n'y a pas de règles sur les quantités.

C'est d'ailleurs la raison pour laquelle j'avais eu l'idée du principe des deux tableaux : un des noms plats, et un autre des types, les regroupant en entrées, plat afric. ou europ. ; tout le reste consistait en un suivi des coûts par personne, et/ou par période, des consommations (ce qui se ferait par calcul).

En fait, là, je peux dire que tu as littéralement touché du doigt le "cœur de l'enjeu".

Tu aurais une idée toi ?

Peut-être serait-il possible de créer plusieurs feuilles ou formulaires userform, pour les entrées des différentes données ?!

Je peux t'assurer que j'ai bien passé, au moins, une bonne semaine entière à chercher à organiser tout cela de façon efficiente, sans y arriver de quelque manière. Faut dire que moi, je pourrais facilement être qualifié de débutant !

Toujours aussi impatient de te lire à nouveau, et très cordialement,

Xavier

Bonsoir

Reprise complète du programme

A tester sérieusement

Cher Banzai64,

Ton programme est extraordinaire, mais alors, à un point tel, que je n'ose pas te demander comment tu t'y es pris. J'aimerais juste, si tu veux bien, te poser quelques questions, par curiosité intellectuelle :

1. comment as-tu raisonner pour défaire cet imbroglio ?

2. à ton avis, pour mon avancement personnel, qu'est-ce qu'il me manquait, de quoi avais-je, moi-même, besoin, que devais-je approfondir, pour avoir passé seul, les obstacles, les difficultés, à ce niveau de complexité ?

3. pour être plus pragmatique, parce que là, tu m'as réellement impressionné - et, ce n'est pas pour te jeter des fleurs - penses-tu que ce soit tout un niveau "scolaire" qui me manque ? ou, ... juste une formation ? ... une documentation ? ... de la pratique ?

Je te remercie pour les efforts ineffables que tu as bien voulu consentir pour ce projet. Mais plus encore, je te remercie pour la grande précision que tu as donnée, plutôt que de simples orientations dont tu aurais pu te contenter.

Très cordialement,

Ton ami, Xavier.

Bonjour

Que de questions ?

xlake a écrit :

1. comment as-tu raisonner pour défaire cet imbroglio ?

La preuve si j'ai trouvé une solution, c'est que ce n'était si compliqué

Pour la 2ème question, je ne saurai dire et ce n'était pas si compliqué que ça

Pour la 3ème question qui rejoint un peu la seconde question, la réponse est la même

Un seul truc qui marche (enfin qui semble marcher) pour moi est la pratique

Mais il faut que tu utilises le programme, cherche les bugs (ce serait étonnant qu'il n'y en ait pas), pense à des améliorations

Amicalement

Cher Banzai64,

Pardonne-moi ! Dans ma précipitation, j'ai oublié de répondre à ta question relative à la l'utilité de feuille "Versements".

Il y a des versements d'avances qui doivent, en principe, être obligatoirement effectués, et ce, pour chacune des personnes "Nom".

L'objectif, dans cette feuille, est de noter le montant versé à l'avance, pour les consommations futures, et d'en déduire au fur et à mesure, le montant des consommations de chaque individu, de sorte à ce que jamais le montant avancé, ne soit inférieur au consommé, sinon, comme tu as dû le constater dans mon tableau, cela fait l'objet d'un affichage dans la colonne "Alerte" de la feuille "Versements".

Aussi, je voulais te demander :

comment déverse-t-on le consommé total par personne, avec ton programme, dans la colonne "Consommé" de la feuille "Versements", pour le suivi ?

Cordialement,

Xavier.

Bonjour

xlake a écrit :

comment déverse-t-on le consommé total par personne, avec ton programme, dans la colonne "Consommé" de la feuille "Versements", pour le suivi ?

Regarde la formule en colonne C

Banzai64,

Merci pour ta réponse.

J'ai fait comme tu as dit, et regardé la formule en colonne C de la feuille "Versements" ; j'y ai, aussi, effectué plusieurs tests, mais aucune valeur n'est prise en compte. J'ai essayé avec plusieurs dates (01 juillet 2015, 02/07/2015, ...), et plusieurs noms (Nom1 et Nom2). A chaque test, le résultat est le même : aucune valeur dans la colonne C de la feuille "Versements" !

Je t'en prie, aide-moi à y fixer le total calculé, au fur et à mesure, des consommations : c'est le seul point qui me reste irrésolu ! Je pense, mais tu es mieux placé pour en juger, que la formule ne tire ses infos, ni du Formulaire "UserForm" de la feuille "Enregistrements", ni de la feuille "BdD" ; mais je ne m'y connais pas assez pour certifier.

En dehors, selon tes conseils, j'ai effectué de nombreux tests, à la recherche d'éventuels bugs, et je n'en ai trouvé aucun ! Le deuxième paragraphe de ce message contient, en conséquence, la seule "question" en suspens.

Merci d'avance pour ta précieuse aide.

Xav.

Bonjour

Je viens de faire un test

Dans la feuille Versement :

B1 : Juillet

C1 : 2015

Avec l'userform

Personnel : Nom10

Date 23/07/2015

Entrée : PE9

Plat Africain : PA5

Plat Européen : Peu1

Valider

Enregistrer

Dans la feuille Versement en face de Nom10 (cellule C12) j'obtiens 5750

Pour moi le résultat est bon

Détailles les essais que tu fais, parce que comme cela je ne vois pas

Salut Banzai64,

Je te remercie pour tes précisions : elles sont exactes !

C'est à mon niveau, au moment de donner les occurrences aux noms des personnes, noms des plats, etc., qu'il y a eu des bugs.

Aussi, pardonne-moi ma réponse très tardive. Vois-tu, ici au Sénégal, la connexion internet avec clé, c'est au gré de la chance.

Merci pour tous tes efforts. Le projet est enfin complètement finalisé, et c'est grâce à ton aide.

Amicalement, Xavier.

Rechercher des sujets similaires à "automatiser deversement donnees"