La révision des comptes d’une entreprise passe pour une bonne part par le suivi d’un référentiel de contrôles (plus ou moins) récurrents dont le contenu est lié à ses spécificités (activités, taille, forme juridique, zones de risques, qualité du contrôle interne…). L’exécution de ces contrôles nécessite la collecte de données comptables issues du FEC (Fichier des Ecritures Comptables). La récurrence de ces travaux d’analyse (réalisés dans le cadre de la révision des comptes dans un groupe de sociétés ou d’un portefeuille-clients d’un cabinet d’expertise-compte ou de commissariat aux comptes) requiert l’automatisation de cette collecte de données.
Le langage Python permet d’automatiser ces tâches à l’aide de requêtes prédéfinies ; ce qui s’avère très utile pour systématiser des contrôles périodiquement ou sur un ensemble de sociétés.
Les exemples qui suivent s’appuient sur le projet de “FEC augmenté” présenté dans les articles “Analyse de données & Python : créer un FEC augmenté” et “Clôtures comptables : analysez vos FEC avant de les archiver…“. Ces exemples sont déclinables à l’infini.
Cet outil d’analyse de FEC est téléchargeable gratuitement en bas de cet article.
1er exemple : la revue des charges d’entretien et de réparation > 500 € (distinction charges / immobilisations) :
La revue des comptes d’entretien et de réparation a notamment pour but de s’assurer qu’aucune dépense répondant à la définition d’une immobilisation n’a été comptabilisée en charges.
L’instruction liste_615_sup_500 = fec[(fec[‘Cpte3’]==615) & (fec[‘Solde’] >= 500)] filtre les lignes d’écriture du FEC dont le montant est supérieur ou égal à 500 € et dont le compte commence par 615 ; le résultat du filtre est stocké dans la variable avant d’être restitué dans l’onglet nommé “615x > 500 €”.
# Onglet "615x > 500 €" : dépenses d'entretien > 500 € # --- Création de l'onglet ws = wb.create_sheet(title="615x > 500 €") # --- Filtrer les comptes commençant par '615' avec Solde supérieur ou égale à 500 liste_615_sup_500 = fec[(fec['Cpte3']==615) & (fec['Solde'] >= 500)] # --- Insertion des données dans la feuille de calcul for row in dataframe_to_rows(liste_615_sup_500, index=False, header=True): ws.append(row)
Résultat :
Bien entendu, la limite de 500 € (qui correspond à la tolérance fiscale) peut être relevée à la discrétion de l’utilisateur en fonction du seuil de signification qu’il s’est fixé.
2ème exemple : analyse du chiffre d’affaires exonéré de TVA
En France, les ventes d’une entreprise sont en règle générale soumises à TVA. Aussi, toute facturation dépourvue de TVA doit être justifiée. L’absence de TVA est susceptible de révéler un problème de paramétrage de l’ERP/DMS…
Le code suivant liste_70_ssTVA = fec[(fec[‘Cpte2’]==70) & (fec[‘EcritureTxTVA’]==0)] extrait toutes les lignes d’écritures dont le compte commence par 70 et dont le taux de TVA est nul :
# Onglet "CA SANS TVA" : chiffre d'affaires exonéré de TVA # --- Création de l'onglet ws = wb.create_sheet(title="CA SANS TVA") # --- Filtre sur les comptes commençant par '70' avec EcritureTxTVA = 0 liste_70_ssTVA = fec[(fec['Cpte2']==70) & (fec['EcritureTxTVA']==0)] # --- Insertion des données dans la feuille de calcul for row in dataframe_to_rows(liste_70_ssTVA, index=False, header=True): ws.append(row)
Résultat de la requête :
Le code source de ce projet s’appuie sur le script FEC augmenté exposé dans cet article : Analyse de données & Python : créer un FEC augmenté.
Autre exemple de script Python : calcul d’échéancier d’emprunt.
___
Pour approfondir le sujet : se former à la programmation en langage Python pour automatiser ses tâches
Derniers articles parBenoît RIVIERE (voir tous)
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024