|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 9 ![]() |
Bonjour à tous
Cela fait maintenant des années que je recherche en vain une comptabilité simplifiée avec notamment UN JOURNAL DE SAISIE D'ECRITURES EN PARTIE DOUBLE. (comme c'est le cas dans toutes les entreprises) On a l'impression que ce sujet fait fuir tout le monde. (et pourtant, les demandes sur Internet sont assez nombreuses.) Personnellement je n'ai jamais réussi à résoudre le problème. Qu'on ne me réponde pas qu'il existe des logiciels ad hoc, ce n'est pas le sujet ! J'avais écrit ma propre comptabilité il y a environ 20 ans (!!!) en DBase et je voudrais tout bêtement la reproduire avec access. Mais je me suis toujours heurté à cette spécificité de la comptabilité : la réalisation du journal de saisie. Une écriture n° X peut être composée de 2 à x lignes, (soit un nombre VARIABLE d'enregistrements, le total des débits doit être égal au total des crédits (ce qui implique que les x enregistrements ne soient stockés dans la table des écritures qu'UNE FOIS le contrôle effectué. On n'est donc pas dans le cas bateau du traitement enregistrement par enregistrement. Par ailleurs toute écriture (quelles que soient son nombre de lignes) doit pouvoir bien sûr être rappelée pour modification et éventuellement supprimée. Si un de vos brillants programmeurs soudainement saisi d'une crise masochisme aïgu souhaite s'intéresser au problème, je suis à sa disposition pour lui fournir toutes précisions utiles ! PS Je fournis les tranquillisants ! |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
À priori avec
Table Ecriture: NumeroEcriture SensEcriture (Débit ou Crédit) Compte Montant Table AssJounalEcriture ClefJournal NumeroEcriture tu devrait pouvoir gérer la partie double, par journal, sans grand problème. Il suffit juste de valider que la sommes de tous les crédits d'une écriture est égal à la somme des débits. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 9 ![]() |
Merci rené. Mais le pb est plus compliqué que cela, en tout cas pour moi.
Schéma du journal de saisie : N° écriture.. Date....Compte...Libellé...........Débit........Crédit ...5.............xxx.......cc1.......blabla...........100 ...5.............xxx.......cc2.......blibli............................20 ...5.............xxx.......cc3.......blibli...............50 ...5 ............xxx.......cc4.......bloblo.........................130 Ici bouton de validation ou non Puis bouton pour quitter ou continuer la saisie Enfin bouton pour rappeler éventuellement une écriture antérieure par son numéro mais dont on ne connait pas le nombre de lignes si écriture équilibrée, (150=150), écriture acceptée, transférée dans le fichier des écritures et VIDAGE de la grille de saisie pour passer à l'écriture suivante devant prendre le numéro 6. Comment effectuer le TRANSFERT de la table de saisie vers la table des écritures (sorte de silo) qui permettra ensuite de générer les comptes (le "grand-livre" en jargon comptable et la "balance" des comptes, c'est à dire compte XXX, ancien solde, total débits, total crédits et nouveaux soldes) et vider la grille de saisie ? Quand on reprend une session de saisie, comment retrouver le numéro de la dernière écriture enregistrée pour l'incrémenter de 1 ? Ne pas confondre ligne d'écriture et écriture : comment utiliser UN formulaire de saisie sachant que CHAQUE LIGNE représente UN enregistrement et que pour couronner le tout, chaque écriture est composée d'un nombre aléatoire de lignes (en général 2 ou 3 mais éventuellement beaucoup plus) Au moment de la validation, il s'agit donc de transférer non pas 1 mais x enregistrements (x lignes de plus dotées du même numéro) vers la table des écritures et vider le formulaire de saisie. Voilà en vrac la liste non exhaustive des problèmes à gérer. Je connais l'essentiel du VBA mais là, je suis largué. Bonne journée |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : juin 2003 Messages : 1 203 ![]() |
Bonjour
Je trouves qu'il n’y a rien de compliqué dans ta demande. Il te faut les tables suivantes Ecriture(NumEcriture, Libelle, Date, NumJournal) DetailEcriture(NumEcriture, NumCompte, MontantDebit, MontantCredit) Compte(NumCompte, LibelleCompte) Et un formulaire de saisie basé sur la table Ecriture avec un sous formulaire basé sur DetailEcriture. Avec quelques contrôles tu peux faire tout ce que tu veux.
__________________
Amicalement |
|
|
00
|
|
|
#5 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Oui la solution de DMboup, en y ajoutant une table des journaux me parait résoudre l'ensemble des problèmes.
Citation:
Le solde initial du compte peut être vu comme une écriture particulière, la seule sans partie double. Après elle s'intègre au calcul automatiquement. Pour la saisie temporaire, tout ce qu'on a faire c'est avoir 2 jeux de tables : tables temporaire, pour saisie avant validation et table permanante pour après validation. Pour la numérotation des écritures temporaires, le plus simple est qu'elles aient leur propre numéro. Lors du transfert, une boucle VBA va copier les données vers les tables permanentes et leurs attribuer un numéro permanent. Une requête de suppression (delete * from TaTable) permettra de vider la table temporaire. Autre solution possible mais peut-être plus complexe, avoir un indicateur de 'validation' dans la table des écritures et détails d'écriture qui va indiquer si c'est une écriture en cours de validation ou une écriture validée. Le 'transfert' consiste alors simplement à changer l'indicateur. Citation:
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
00
|
|
|
#6 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Il faudrait aussi ajouter la notion de date d'écriture, de compagnie si tu as plusieurs compagnies dans ta compta, de plan comptable, et évidement une table des exercices qui donnent le début et la fin de ton exercice comptable.
Donc avec une diazine de tables (sans compter les temporaires), et un paquet de requêtes (solde de compte, grand livre, bilan, cash-flow, etc ...) tu peux avoir une comptabilité qui a bien de l'allure. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : juillet 2010 Messages : 56 ![]() |
Pour info, voici ce que j'ai fait pour ma boite (juste pour faire du reporting car notre ERP est un peu vieux et peu paramétrable).
Table Plan Comptable Table Periode Comptable (défini les dates des clotures comptables ainsi que si elles ont été faite ou pas) Table Transaction (liste des Ecritures avec la date et le montant ; + = DEBIT ; - = CREDIT) Table Solde (total des mouvements des comptes pendant une période donnée) Après, pour la mise à jour quotidienne, je passe par une table temporaire : - la saisie de l'écriture est enregistrée dedans - on peut y revenir plus tard - le mouvement dans la table transaction et le calcul du solde se fait une fois que l'on valide et pas avant... Voila. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 9 ![]() |
Merci à tous.
Je précise avant tout que je suis un ex-directeur comptable et financier. Je n'ai donc aucun problème de conception : ce sont les manipulations nécessaires en VBA qui me posent problème. La comptabilité est bourrée de contraintes et de subtilités qui échappent aux non-comptables et c'est normal. Merci à René pour le D(max) que j'ignorais et la requête SQL Delete *, seuls éléments concrets qui peuvent me servir. Par contre si, il faut tout garder, année par année. (10 ans en droit commercial, et à la limite à vie pour un particulier !!!) Le bilan et le compte de résultat font l'objet d'un arrêté annuel. Chaque année, on procède à un arrêté des écritures. Il faut ici introduire la notion de comptes de bilans (comptes qui redémarrent de leur solde chaque année) et des comptes de résultat (qui repartent de 0 chaque année). Si on veut le solde du compte banque ouvert il y a 15 ans, on ne va pas relire tous les enregistrements bancaires intervenue depuis cette date pour en déduire le solde actuel !!! Quant au cashflow et autres, ce n'est plus de la compta mais de l'analyse financière. Donc, exit ! J'ai pris ici un schéma de journal ultra simplifié pour ne rester que dans les grands principes. (en réalité, certains sont à contrepartie automatique, d'autres non etc...). J'ai aussi passé sous silence la liaison du journal avec le plan comptable et le contrôle d'existence du compte. Bref, je suis d'accord avec à peu près tout ce que vous me dites mais cela tient plus du "y' qu'à, faut qu'on" que de réponses aux questions que j'ai posées. Exemple : JCdenton : saisie enregistrée dans une table provisoire. Très bien mais je n'ai toujours aucune idée de la meilleure méthode à employer pour envoyer l'écriture saisie dans la table provisoire SaisieEcriture (sans S !!!) dans la table DES écritures. (autrement dit, le "journal général" en charabia comptable). De plus, le formulaire de saisie, s'il s'agit d'un journal à contrepartie automatique, nécessite non seulement l'envoi des lignes saisies mais aussi d'une ligne crée par le formulaire lui-même : la fameuse contrepartie auto qui équilibre l'écriture. (d'où, dans ce cas , l'absence de contrôle d'équilibre) Comme me dit DMboup, "avec quelques contrôles tu peux faire tout ce que tu veux." Ca, j'en suis certain !!! Pas de problème pour les tables évidemment. Mais la gestion de tous les calculs et contrôles (au sens classique), c'est POUR MOI une autre paire de manches !! Enfin, tout cela a l'air tellement évident pour vous tous que je vais m'y remettre, pour essayer de ne plus être ..... le manche ! Je finirai en faisant remarquer qu'après avoir cherché pendant des heures sur les sites français et anglo-saxons, je n'ai jamais pu trouver UN SEUL exemple d'un comptabilité en partie double même simple écrite en Access malgré une pléthore de sites et des dizaines de milliers d'exemples en tous genres ! A mon avis, ce n'est pas un hasard. Qui veut relever le défi ? Je suis à sa disposition pour la conception technique et les explications nécessaires !!! Bonne vacances à tous et bon courage à ceux qui sont rentrés ! |
|
|
00
|
|
|
#9 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Je suis d'accord avec toi chesnay78, la compta est pleine de chausse-trappes. C'est pour cela que je la laisse le soin aux comptables :-).
Pour copier des données d'une table à une autre, tu peux utiliser une requête d'insertion qui va prendre tes données de la table source et les écrires dans la table cible. Ça prend généralement 5 mn à créer. Sinon une boucle VBA peut faire le même travail, exemple de code : Code :
Pour ce qui est de l'existence du compte, les relations d'intégrité référentielle résolvent le problème sans avoir à s'en inquiéter. Si tu mets une relation d'intégrité entre la tables des écritures et celle des comptes tu garanties : 1) que le compte choisi existe dans la table des comptes 2) que tu ne peux pas supprimer un compte si il y a des écritires qui existent. Nos réponses peuvent paraître vagues car les questions que tu poses sont très vastes et ont généralement plusieurs réponses détaillées possibles. Si on les mets toutes immédiatement, on va devoir écrire un livre. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Robert JAMINRetraité Inscription : juillet 2009 Messages : 1 223 ![]() |
Bonjour,
Il y a deux ou trois jours que je suit la discussion avec un certain intérêt et l'envie de participer. Je me lance, vous trouverez un fichier joint avec un projet que j'avais commencé avec et pour un ami mais hélas ces affaires ont mal tournés et j'ai abandonné. Si vous voulez bien y jeter un coup d'oeil. Si cela vous intéresse je veux bien essayé de vous rendre service en vous aidant à construire quelque chose d'adapté à vos besoins. Je ne laisserai pas longtemps cette base sur le site car elle occupe preque tout l'espace alloué aux pièces jointes. Ce projet était prévu pour la compta en Belgique. Je ne suis pas comptable loin de là donc à bon entendeur salut A+
__________________
Cordialement. RJ |
|
|
00
|
|
|
#11 | ||||
|
Membre Expert
![]() ![]() Inscription : juin 2003 Messages : 1 203 ![]() |
Citation:
Citation:
Citation:
Le plan comptable par contre c'est juste la liste des comptes que tu utilise. Citation:
Je te rassures que avoir avec Access une application de comptabilité qui va jusqu'aux états financiers est tout à fait possible. Il faut du temps et beaucoup de patience. Je crois enfin que tu ferait mieux de commencer à produire quelque chose, et selon les problèmes que tu rencontre, nous pourront certainement les résoudre ensemble.
__________________
Amicalement |
||||
|
|
00
|
|
|
#12 | |
|
Membre du Club
![]() Inscription : juillet 2010 Messages : 56 ![]() |
Citation:
Avec, tu vas saisir manuellement ton écriture avec les comptes, débits et crédits (un peu à la façon d'une feuille d'écriture papier). Tu fais un champs TOTAL débit et TOTAL crédit pour vérifier l'équilibre et un bouton VALIDER. A chaque fois que tu vas saisir un compte et son montant, il va le rajouter automatiquement dans ta table temporaire. Quand tu clic sur le bouton valider, une requete va mettre à jour ta table ECRITURES (avec un S Par contre, en ce qui concerne la contrepartie automatique, il faudrait créer une table avec la liste des type d'écritures (OD, achat, vente, ....) et une autre avec la liste des comptes CONTREPARTIE....du genre TableTypeEcriture (IdTypeEcriture, txtNomEcriture, txtTypeEcriture) Table contrepartie (Idauto, txtCompte, IdTypeEcriture) On pourrait aussi faire mieux : créer directement des schémas d'écritures... ![]() Du point de vue de mon boulot, j'ai juste eu besoin d'importer les écritures générées par le système afin de créer un compte de résultat détaillés facilement lisible...... Christophe Contrôleur de gestion |
|
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : février 2009 Messages : 9 ![]() |
Salut à tous .
Je constate avec plaisir que nous entrons enfin dans le concret ! D'abord, un grand merci à René pour sa précieuse boucle avec recordset version DAO. Cela me sera certainement très utile. Jcdenton Citation:
Par contre, je ne suis pas en faveur de la création de types d'écritures, d'une part parce qu'on finit toujours par tomber sur une exception, d’autre part, à cause de cette maudite variabilité du nombre de lignes composant l’écriture. DMboup Citation:
Mais je me suis cassé les dents, notamment sur la gestion du curseur dans mon formulaire (comment signaler au programme que nous sommes sur la dernière ligne de l'écriture et qu'il ne faut pas aller à la ligne suivante mais passer à la validation), sur le recordset qui a une antipathie manifeste pour moi, sur les problèmes de clé primaire pour l'historique pluri-annuel depuis l'origine (de ma compta, pas de l'univers) que je voulais faire apparaitre lors de la saisie (pour info) mais la sauter le champ lors de la saisie etc !!!!!… Si j’ai choisi la comptabilité, c’est parce que je me suis dit que si je m’en sortais, je serais alors blindé pour écrire en Access VBA toute application classique et que je traine toujours ma vieille compta en DBASE (DOS !!)depuis 15 ans !!! Que personne ne rigole ! Merci à rjamin qui a cent coudées d’avance sur moi et dont l’exemple impressionnant ressemble à ce que j’envisage de réaliser. La différence essentielle est que je souhaiterais aller plus loin par le biais du VBA pour abandonner du « look and feel « d’Access et approfondir le VBA qui est la clé de tout. Je vais étudier cela en détail cet exemple précieux. Nous en reparlerons. Je pars en vacances pour 15 jours demain. Mais je compte bien reprendre cette discussion à mon retour vers le 20 août maintenant que nous sommes entrés dans le vif du sujet. Vous n'êtes pas débarrassés de moi ! patrick |
||
|
|
00
|
|
|
#14 | |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Citation:
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 9 ![]() |
Bonjour
Je n'ai malheureusement pas eu le temps de me remettre à mon projet de compta. Je vais commencer à étudier en détail l'excellent exemple de rjamin et essayer d'exploiter les éléments fournis par les participants à cette discussion. Nul doute que j'aurai des questions à poser prochainement ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com