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 2019, 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 d’erreurs et de fraudes.

Une des erreurs les plus communes en comptabilité est la double comptabilisation de factures fournisseurs… avec le risque de double paiement qui s’ensuit. Si les procédures sont chargées de limiter ce risque de double comptabilisation, 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;

L’automatisation de la détection des doublons 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’ »

VBA, SQL : conversion d’une valeur numérique en une chaîne de caractères

La conversion de données (ou transtypage) est commune en programmation.

Pour convertir des valeurs numériques en données texte, les langages VBA et SQL utilisent la fonction Cstr.

En VBA :

Dim Num as Integer
Dim Ch as String 
Num = 12 
Ch = Cstr(Num)

En SQL, la conversion d’une valeur numérique en une chaîne de caractères passe également par la fonction Cstr :

Continue reading ‘VBA, SQL : conversion d’une valeur numérique en une chaîne de caractères’ »