Analyse des écritures comptables (VBA/SQL) : recherche des encaissements en espèces supérieurs à 1 000 €

Afin de limiter le risque de fraude fiscale, la loi interdit d’effectuer en espèces le paiement d’une dette supérieure à  1 000 € (C. mon. fin. art. L 112-6, I-al. 1 et D 112-3). Il convient de s’assurer régulièrement qu’aucun encaissement n’est réalisé en contravention avec la loi.

Le contrôle du respect de cette règle de droit s’inscrit totalement dans le cadre de la mise en œuvre d’un programme de supervision comptable à l’image du projet PADoCC

'Création table CAISSE_ENCAISSTSUP1K
NomReq = "ECRITUREStemp"
NomTable = "E255_CAISSE_ENCAISSTSUP1K"
TexteReq = ""
If TableExiste(DB_Groupe_SUPERVISION, NomTable) Then TexteReq = TexteReq & "INSERT INTO " & NomTable & " IN '" & dossier_Bases & NomBaseDestinationEnCours & "' "
TexteReq = TexteReq & "SELECT CodeEntité, EcritureNum, JournalCode, JournalLib, EcritureDateComptable, CompteNumHarmonisé, CompteNum, CompteLib, CompteAuxNum, CompteAuxLib, PièceRéf, PièceDate, EcritureLib, Débit, Crédit, Solde, ValidDate,"
TexteReq = TexteReq & " AAAAMM, TypeJournal, TypeEcriture, EcritureCompteNumTiers, EcritureCompteAuxNum, EcritureCompteAuxLib"
If Not (TableExiste(DB_Groupe_SUPERVISION, NomTable)) Then TexteReq = TexteReq & " INTO " & NomTable & " IN '" & dossier_Bases & NomBaseDestinationEnCours & "'"
TexteReq = TexteReq & " FROM [_ECRITURES]" & " IN '" & dossier_Bases & BDD_Final & "'"
TexteReq = TexteReq & " WHERE (([_ECRITURES].Solde<=-1000) AND ([_ECRITURES].Cpte1=""4"" Or [_ECRITURES].Cpte1=""7"") AND ([_ECRITURES].TypeJournal=""CAISSE""));"
ExéReq

Continue reading ‘Analyse des écritures comptables (VBA/SQL) : recherche des encaissements en espèces supérieurs à 1 000 €’ »

EXCEL : mettre en évidence les doublons avec les formats conditionnels

L’identification des doublons est une tâche fréquente lorsque l’on analyse des données. Les formats conditionnels d’Excel permettent de manière très simples de les détecter et de les faire ressortir, voire de les supprimer.

Mettre en évidence les valeurs en double

Les formats conditionnels mettent en forme automatiquement des données en fonction de critères. Ces critères sont exprimés à l’aide de formules de calcul ou de critères standard prédéfinis.

Continue reading ‘EXCEL : mettre en évidence les doublons avec les formats conditionnels’ »

Excel : afficher les codes postaux commençant par un zéro

Excel n’affiche pas les zéros non significatifs, qu’ils se trouvent sur la gauche d’un nombre (02100 est affiché 2100) ou sur la droite d’une décimale (10,50 est affiché 10,5).

Appliqué aux codes postaux français, ce principe affiche les codes postaux inférieurs à 10000 sur 4 positions au lieu des 5 attendues.

Format codes postaux

Heureusement, Excel propose des solutions.

Continue reading ‘Excel : afficher les codes postaux commençant par un zéro’ »

Limitation des paiements en espèces et en monnaie électronique

Afin de limiter le risque de fraude fiscale, la loi interdit d’effectuer en espèces, en cartes cadeaux et au moyen de monnaie électronique le paiement d’une dette supérieure à (C. mon. fin. art. L 112-6, I-al. 1 et D 112-3) :

Limitation des paiements en espèces d’un professionnel ou à un professionnel
Ne peut être effectué en espèces, cartes cadeaux, ou au moyen de monnaie électronique*** le paiement d’une dette supérieure à (c. mon. et fin. art. L. 112-6 et D. 112-3) : Le débiteur agit pour les besoins d’une activité professionnelle Le débiteur n’agit pas pour les besoins d’une activité professionnelle
Le débiteur a son domicile fiscal en France 1 000 € 1 000 €
Le débiteur justifie qu’il n’a pas son domicile fiscal en France 1 000 € 10 000 €*
à compter du 1/10/2018**
*Conserver une copie de la pièce d’identité du débiteur ** 15 000 € auparavant
***La monnaie électronique (article L. 315-1 du Code monétaire et financier) est un substitut à l’argent liquide, stockée dans un dispositif électronique, magnétique ou sur un serveur distant non relié à un compte bancaire : porte-monnaie électronique, e-carte bleue, carte prépayée, PAYLIB, PAYPAL, BITCOIN…

Le paiement d’une dette supérieure à mille (ou dix mille) euros doit donc être effectuée par chèque barré, virement ou carte de paiement.

Selon l’administration fiscale, l’appréciation du dépassement de ces seuils est fait en tenant compte du montant global de la dette, de sorte que les paiements partiels, même inférieurs au maximum, doivent être effectués autrement qu’en espèces lorsque la dette excède elle-même le seuil d’interdiction (BOI-CF-CPF-30-30-2012 0912 n° 40).

Continue reading ‘Limitation des paiements en espèces et en monnaie électronique’ »

Conception et mise en œuvre d’un programme de supervision des comptes d’un groupe

La croissance d’un groupe s’accompagne de nouveaux besoins en matière de suivi des comptabilités (mesure de la performance, contrôle du respect des règles légales et internes…).

PADoCC_Ecritures - table _BAUX

Pour ma part, le nec plus ultra serait un outil de supervision et d’analyse de données suffisamment puissant pour me permettre à la fois de maîtriser l’ensemble des comptabilités et de répondre à mes différentes missions sans pour autant me noyer dans la masse de données produites par le groupe.

Vœu exaucé début septembre, date à laquelle j’ai mis en service mon propre outil de supervision des comptabilités du groupe, PADoCC_Ecritures. Il me permet d’orienter plus efficacement le contrôle continu des comptes. Ce système assure la centralisation automatisée de l’ensemble des comptabilités du groupe (neuf millions de lignes d’écritures annuels répartis sur 80 sociétés). Toutes les comptabilités, même celles des plus petites structures, passent au crible du système d’analyse. L’analyse de données permet de segmenter les écritures comptables par nature, de faire ressortir les schémas atypiques… Et concourt à la prévention des risques de fraudes et erreurs.

Continue reading ‘Conception et mise en œuvre d’un programme de supervision des comptes d’un groupe’ »

SQL : détecter les achats comptabilisés en double

La supervision des comptabilités d’un groupe vise à répondre à plusieurs objectifs dont la prévention des risques des erreurs et des fraudes.

Une des erreurs communes est la double comptabilisation de factures fournisseurs. Si les procédures sont chargées de limiter ce risque, la systémisation du contrôle complète plus efficacement le dispositif de prévention.

SELECT Requête1.CompteDeCodeEntité AS NbOccurrences, ECRITURES.CodeEntité, ECRITURES.JournalCode, ECRITURES.JournalLib, ECRITURES.EcritureNum, ECRITURES.EcritureDate, ECRITURES.CompteNum, ECRITURES.CompteLib, ECRITURES.CompteAuxNum, ECRITURES.CompteAuxLib, ECRITURES.PièceRéf, ECRITURES.PièceDate, ECRITURES.EcritureLib, ECRITURES.Débit, ECRITURES.Crédit, ECRITURES.ValidDate, ECRITURES.Solde, ECRITURES.AAAAMM
INTO ACHATS_DOUBLONS IN 'C:\ANA-FEC.accdb'
FROM (SELECT ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal, Count(ECRITURES.CodeEntité) AS CompteDeCodeEntité FROM ECRITURES
WHERE ((Not (ECRITURES.CompteAuxNum) Is Null) AND ((ECRITURES.TypeJournal)="ACHATS"))
GROUP BY ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal
HAVING ((Count(ECRITURES.CodeEntité))<>1)) AS Requête1 INNER JOIN ECRITURES ON (Requête1.TypeJournal = ECRITURES.TypeJournal) AND (Requête1.Solde = ECRITURES.Solde) AND (Requête1.PièceRéf = ECRITURES.PièceRéf) AND (Requête1.CompteAuxNum = ECRITURES.CompteAuxNum) AND (Requête1.CodeEntité = ECRITURES.CodeEntité)
ORDER BY Requête1.CodeEntité, Requête1.CompteAuxNum, Requête1.PièceRéf, Requête1.Solde;

Cette automatisation peut efficacement être mise en œuvre à l’aide d’une requête SQL.

Continue reading ‘SQL : détecter les achats comptabilisés en double’ »

ACCESS (SQL) : figer le résultat d’une requête dans une table

Les requêtes SQL permettent d’extraire des informations de bases de données. Le résultat de ces requêtes peut lui-même être interrogé par une autre requête (sous-requête) et ainsi de suite. Appliquée à des volumes de données conséquents, cette pratique de sous-requêtes entraîne des temps de traitements qui s’allongent à chaque niveau d’interrogation. Pour pallier à cet inconvénient, il est possible de figer le résultat des requêtes dans une table avant interrogation par la requête suivante.

SELECT Champs et calculs INTO TableDestination FROM TableOrigine

L’assertion INTO TableDestination envoie le résultat de la requête SELECT… FROM TableOrigine dans une nouvelle table nommée TableDestination.

Continue reading ‘ACCESS (SQL) : figer le résultat d’une requête dans une table’ »

SQL : obtenir le numéro du jour de la semaine d’une date avec la fonction DAYOFWEEK

La fonction SQL DAYOFWEEK(date) fournit le numéro du jour de la semaine de la date indiquée en paramètre.

Le numéro renvoyé par la fonction DAYOFWEEK s’interprète ainsi :

1 = dimanche, 2 = lundi…, 7 = samedi.

Exemple :

SELECT DAYOFWEEK(EcritureValidDate) AS NumJourSem, EcritureNum
FROM ECRITURES
WHERE DAYOFWEEK(EcritureValidDate)=1 OR DAYOFWEEK(EcritureValidDate)=7;

Continue reading ‘SQL : obtenir le numéro du jour de la semaine d’une date avec la fonction DAYOFWEEK’ »