Sommaire · 7 parties
- Le FEC : ce que contient vraiment le fichier
- Importer un FEC dans Excel sans le casser
- Les 6 contrôles d'anomalies à lancer dès l'import
- Automatiser le lettrage client et fournisseur
- Rapprochement bancaire : relevé contre grand livre
- Le tableau de bord de révision
- Quand Excel suffit, quand il faut industrialiser
Le FEC : ce que contient vraiment le fichier
Le Fichier des Écritures Comptables est obligatoire depuis 2014 pour toute entreprise tenant sa comptabilité de façon informatisée. Sa structure est normée par l'article A.47 A-1 du Livre des procédures fiscales : 18 colonnes, un format texte délimité, un encodage souvent en ISO-8859-15.
Les colonnes qui comptent réellement pour une révision :
- JournalCode / JournalLib — identifie l'origine de l'écriture (AC, VE, BQ, OD)
- EcritureNum — le numéro de pièce, clé de regroupement des lignes d'une même écriture
- CompteNum / CompteLib — le compte général, votre axe d'agrégation principal
- CompAuxNum — le compte auxiliaire (client ou fournisseur), vide sur les comptes généraux
- Debit / Credit — ou, selon l'éditeur, une colonne unique
Montantavec unSens - EcritureLet / DateLet — la lettre de lettrage et sa date, souvent partiellement remplies
C'est cette dernière paire qui pose problème : la plupart des FEC arrivent avec un lettrage incomplet, parce que l'exercice a été clôturé avant que tous les règlements soient rapprochés. D'où l'intérêt de reconstituer le lettrage côté Excel.
À retenir
Deux FEC issus de deux logiciels différents n'ont pas la même tête : séparateur tabulation ou pipe, montants avec virgule ou point, colonne Montant/Sens au lieu de Débit/Crédit. Votre import doit être tolérant, pas rigide.
Importer un FEC dans Excel sans le casser
Ne double-cliquez jamais sur un FEC. Excel va interpréter les numéros de compte comme des nombres, perdre les zéros de tête de 0411000, convertir 2026-03-01 en date américaine et tronquer au-delà d'un million de lignes.
La bonne porte d'entrée est Données > Obtenir des données > À partir d'un fichier texte/CSV, puis Transformer les données pour ouvrir Power Query au lieu de charger directement.
Les 4 réglages à faire systématiquement
- Origine du fichier : Europe occidentale (ISO) si les accents sont cassés
- CompteNum, CompAuxNum, EcritureNum, PieceRef : forcer le type Texte
- EcritureDate, DateLet, PieceDate : type Date avec paramètres régionaux français
- Debit, Credit : type Nombre décimal — si les montants sont à virgule, utiliser Modifier le type avec les paramètres régionaux
Si votre FEC utilise le couple Montant/Sens, ajoutez deux colonnes personnalisées dès l'import pour normaliser :
= Table.AddColumn(Source, "Debit", each if [Sens] = "D" then [Montant] else 0, type number)= Table.AddColumn(Etape, "Credit", each if [Sens] = "C" then [Montant] else 0, type number)Ajoutez enfin une colonne Classe pour pouvoir filtrer par classe comptable en un clic :
= Table.AddColumn(Etape, "Classe", each Text.Start([CompteNum], 1), type text)Chargez le résultat dans un tableau structuré nommé FEC. Tout le reste de l'article s'appuie sur ce nom. Le mois suivant, un clic sur Actualiser rejoue l'intégralité des transformations sur le nouveau fichier.
Les 6 contrôles d'anomalies à lancer dès l'import
Avant toute analyse, validez le fichier. Ces six contrôles prennent trois minutes et évitent de réviser un dossier sur des données fausses.
1. Équilibre général débit / crédit
=SOMME(FEC[Debit])-SOMME(FEC[Credit])Le résultat doit être strictement nul. Un écart de quelques centimes trahit un problème d'arrondi à l'export ; un écart important, un fichier tronqué.
2. Écritures déséquilibrées ligne à ligne
Chaque EcritureNum doit s'équilibrer individuellement :
=SOMME.SI(FEC[EcritureNum];[@EcritureNum];FEC[Debit])-SOMME.SI(FEC[EcritureNum];[@EcritureNum];FEC[Credit])3. Trous dans la numérotation séquentielle
Par journal, la séquence des numéros d'écriture doit être continue. Un tableau croisé dynamique avec JournalCode en ligne et le min/max de EcritureNum révèle immédiatement les ruptures.
4. Dates hors exercice
=NB.SI.ENS(FEC[EcritureDate];"<"&DATE(2026;1;1))+NB.SI.ENS(FEC[EcritureDate];">"&DATE(2026;12;31))5. Comptes non conformes au PCG
Un numéro de compte qui ne commence pas par un chiffre de 1 à 8, ou qui fait moins de 3 caractères, est suspect :
=SOMMEPROD(--(NBCAR(FEC[CompteNum])<3))6. Écritures passées le week-end ou un jour férié
Ce n'est pas une anomalie en soi, mais une zone d'attention classique en contrôle fiscal. Une colonne calculée suffit :
=SI(JOURSEM([@EcritureDate];2)>5;"Week-end";"")À retenir
Regroupez ces six résultats dans un petit panneau « Contrôles » en haut de votre feuille, avec une mise en forme conditionnelle verte/rouge. Vous saurez en un coup d'œil si le FEC est exploitable.
Automatiser le lettrage client et fournisseur
Le lettrage consiste à apparier une facture et son règlement sur un même compte auxiliaire. Dans Excel, la logique se ramène à une clé de rapprochement : compte auxiliaire + montant absolu.
Étape 1 — construire la clé
=[@CompAuxNum]&"|"&TEXTE(ABS([@Debit]-[@Credit]);"0.00")Étape 2 — compter les occurrences par sens
Une facture client est au débit du 411, son encaissement au crédit. Si une clé apparaît une fois au débit et une fois au crédit, le couple est lettrable :
=NB.SI.ENS(FEC[Cle];[@Cle];FEC[Debit];">0")=NB.SI.ENS(FEC[Cle];[@Cle];FEC[Credit];">0")Étape 3 — attribuer la lettre
Plutôt que de reproduire les lettres A, AA, AB du logiciel, numérotez les groupes lettrables et affichez le statut :
=SI([@Lettrable];"L"&EQUIV([@Cle];UNIQUE(FILTRE(FEC[Cle];FEC[Lettrable]));0);"À traiter")Étape 4 — isoler le solde restant
Le vrai livrable du lettrage, c'est la liste des écritures qui ne se rapprochent de rien :
=FILTRE(FEC[[CompAuxNum]:[Credit]];(FEC[Lettrable]=FAUX)*(GAUCHE(FEC[CompteNum];3)="411");"Tout est lettré")Sur un dossier de 40 000 lignes, cette approche lettre automatiquement 70 à 85 % des écritures auxiliaires. Le reste — règlements partiels, paiements groupés, écarts de règlement — demande un arbitrage humain, et c'est exactement là que doit se concentrer le temps du collaborateur.
Exemple concret
Un règlement de 3 200 € soldant trois factures de 1 200 €, 900 € et 1 100 € ne sera jamais rapproché par la clé montant. Prévoyez une seconde passe qui teste les combinaisons de factures d'un même auxiliaire dont la somme égale le règlement — le Solveur d'Excel le fait très bien sur des volumes raisonnables.
Rapprochement bancaire : relevé contre grand livre
Le rapprochement bancaire suit la même mécanique, avec une difficulté supplémentaire : le libellé du relevé ne ressemble jamais au libellé comptable, et la date bancaire décale de un à cinq jours la date d'écriture.
La clé de rapprochement doit donc tolérer un décalage. On apparie sur le montant, puis on vérifie que l'écart de date reste dans une fenêtre acceptable :
=LET(cand;FILTRE(FEC[EcritureDate];(FEC[Montant]=[@MontantReleve])*(GAUCHE(FEC[CompteNum];3)="512"));SI(NB(cand)=0;"Non rapproché";SI(MIN(ABS(cand-[@DateReleve]))<=5;"Rapproché";"Écart de date")))Trois statuts en sortie, trois traitements différents :
- Rapproché — rien à faire
- Écart de date — à vérifier, souvent un chèque en circulation ou un virement en cours
- Non rapproché — écriture manquante en comptabilité, ou frais bancaires non saisis
Une mise en forme conditionnelle sur ces trois valeurs transforme la feuille en outil de travail : le collaborateur ne lit que les lignes rouges et oranges.
Pour les libellés, une normalisation légère améliore nettement le taux d'appariement : passer en majuscules, supprimer les espaces multiples et retirer les préfixes bancaires récurrents (VIR SEPA, PRLV, CB DU).
=SUPPRESPACE(MAJUSCULE(SUBSTITUE(SUBSTITUE([@Libelle];"VIR SEPA";"");"PRLV";"")))Le tableau de bord de révision
Une fois le FEC propre et lettré, la révision devient un exercice de lecture. Trois blocs suffisent, tous alimentés par des tableaux croisés dynamiques branchés sur le tableau FEC.
Bloc 1 — balance générale avec variation N-1
Compte en ligne, solde en valeur, colonne de variation en pourcentage. Toute variation supérieure à 20 % en valeur absolue se met en évidence automatiquement : c'est votre liste de points à justifier.
=SOMME.SI.ENS(FEC[Debit];FEC[CompteNum];[@CompteNum])-SOMME.SI.ENS(FEC[Credit];FEC[CompteNum];[@CompteNum])Bloc 2 — soldes intermédiaires de gestion
Les SIG se reconstituent directement depuis les classes 6 et 7 par préfixe de compte :
=SOMMEPROD((GAUCHE(FEC[CompteNum];2)="70")*(FEC[Credit]-FEC[Debit]))Marge commerciale, valeur ajoutée, EBE, résultat d'exploitation : cinq lignes de formules du même type, et vous avez une lecture économique du dossier avant même d'ouvrir la liasse.
Bloc 3 — balance âgée clients
Sur les écritures 411 non lettrées, un simple calcul d'ancienneté ventile l'encours en tranches :
=SI([@Anciennete]<=30;"0-30 j";SI([@Anciennete]<=60;"31-60 j";SI([@Anciennete]<=90;"61-90 j";"+90 j")))C'est le livrable que les clients du cabinet réclament le plus souvent, et celui qu'aucun logiciel ne sort exactement dans le format attendu.
Quand Excel suffit, quand il faut industrialiser
Excel tient très bien la charge jusqu'à environ 500 000 lignes d'écritures avec Power Query et le modèle de données. Au-delà, les temps de recalcul deviennent un frein réel.
Les signaux qui indiquent qu'il faut passer à l'échelle :
- Vous refaites le même import manuellement pour chaque dossier du portefeuille
- Plusieurs collaborateurs maintiennent chacun leur version du fichier
- Le temps d'actualisation dépasse deux minutes
- Vous devez tracer qui a validé quel contrôle, et quand
La réponse n'est pas forcément un nouveau logiciel. Un classeur maître paramétré par dossier, avec un chemin de fichier en paramètre Power Query, industrialise déjà l'essentiel :
= Csv.Document(File.Contents(CheminDossier & "\" & NomFEC), [Delimiter="|", Encoding=1252])Changer le paramètre CheminDossier, actualiser, et l'ensemble des contrôles, du lettrage et du tableau de bord se rejoue sur le dossier suivant. C'est le meilleur rapport effort/gain sur un portefeuille de 30 à 150 dossiers.
À retenir
Le bon découpage : Power Query pour l'import et la normalisation, formules dynamiques pour les contrôles et le lettrage, tableaux croisés pour la restitution. Pas de VBA tant que ces trois couches suffisent — c'est plus rapide à maintenir et transmissible à n'importe quel collaborateur.
Questions fréquentes
Excel peut-il ouvrir un FEC de plusieurs centaines de milliers de lignes ?+
Une feuille Excel plafonne à 1 048 576 lignes, mais le vrai plafond pratique se situe plus bas. Passez systématiquement par Power Query : le fichier n'est pas chargé dans la grille, seules les transformations et le résultat agrégé le sont. Avec le modèle de données (Power Pivot), des FEC de plusieurs millions de lignes restent exploitables pour de l'analyse, même si l'affichage ligne à ligne n'est plus possible.
Le lettrage automatique par formules est-il fiable pour un contrôle fiscal ?+
Il sert à préparer et à prioriser le travail, pas à se substituer au lettrage du logiciel comptable. Le lettrage opposable est celui enregistré dans la comptabilité, avec ses colonnes EcritureLet et DateLet. L'approche Excel décrite ici identifie rapidement les couples évidents pour que le collaborateur concentre son temps sur les cas ambigus, puis reporte les décisions dans l'outil comptable.
Comment gérer les FEC de logiciels différents dans un même modèle ?+
Ajoutez une étape de normalisation en tête de votre requête Power Query : renommage des colonnes vers les noms normés de l'article A.47 A-1, conversion Montant/Sens en Débit/Crédit, harmonisation des séparateurs décimaux. Une fois cette couche en place, tout ce qui suit — contrôles, lettrage, tableau de bord — est identique quel que soit l'éditeur d'origine.
Besoin d'un outil Excel sur mesure ?
Je conçois des fichiers Excel calqués sur vos process — facturation, suivi RH, stocks, tableaux de bord. Livraison en 7 jours, propriété définitive, zéro abonnement.