Import direct — Nettoyage a la source — Mise a jour automatisee
Le premier obstacle de tout projet Power BI finance n’est pas les formules DAX.
C’est d’obtenir des donnees comptables propres dans le bon format.
Cette page documente la methode d’import pour chaque logiciel de comptabilite couramment utilise en PME : Sage 100, Cegid Y2, EBP Compta, et le FEC comme source universelle de dernier recours.
Methodes validees en conditions reelles sur missions 2024-2026
Chaque logiciel comptable a sa propre logique d’export. Sans methode adaptee, le nettoyage prend plus de temps que la construction du dashboard.
Comptes generaux en texte libre, libelles non normalises, dates au format DD/MM/YYYY non reconnu, colonnes fusionnees. Power BI requiert un format tabulaire propre.
Sage 100 genere des journaux avec des colonnes differentes de Cegid. EBP numerote les comptes autrement. Impossible d'utiliser le meme fichier Power Query sur deux sources.
Si le DAF doit re-exporter, re-nettoyer, et re-importer chaque mois, le reporting n'est pas autonome. L'objectif : un clic, donnees a jour.
Le Fichier des Ecritures Comptables est normalise par la DGFiP et produit par tous les logiciels. Utile pour des projets ponctuels, mais pas optimal pour du reporting mensuel automatise.
La regle d’or : le travail de nettoyage se fait une seule fois, dans Power Query, et s’applique automatiquement a chaque actualisation. Jamais de modification manuelle sur les donnees sources.
La solution la plus repandue en PME francaise. Deux methodes d’import selon la version et les droits d’acces disponibles.
Sage 100 expose sa base de donnees via ODBC (Open Database Connectivity). Power BI se connecte directement, sans export intermediaire. La mise a jour est instantanee et la connexion survit aux clotures mensuelles. Requiert un acces reseau a la base Sage et un driver ODBC Sage installe.
-- Etapes dans Power BI Desktop :
1. Obtenir des données > Base de données ODBC
2. DSN : "Sage100_VOTRE_DOSSIER" (configuré au préalable)
3. Tables utiles :
- F_ECRITUREC → écritures comptables (journal, compte, débit, crédit)
- F_COMPTEG → plan comptable général
- F_JOURNAL → liste des journaux
- F_PIECE → pièces comptables avec libellés
-- Requête Power Query type pour F_ECRITUREC :
let
Source = Odbc.DataSource("DSN=Sage100_MON_DOSSIER"),
Ecritures = Source{[Name="F_ECRITUREC"]}[Data],
Filtre = Table.SelectRows(Ecritures,
each [EC_Date] >= #date(2024, 1, 1)),
TypesCorriges = Table.TransformColumnTypes(Filtre, {
{"EC_Date", type date},
{"EC_Montant", type number}
})
in
TypesCorrigesEncodage ANSI vs UTF-8 (accents corrompus), colonnes Debit/Credit en texte au lieu de nombre (espaces invisibles), comptes de classe 8 et 9 presents dans l’export mais inutiles pour le reporting financier standard. Filtrer sur les classes 6 et 7 en priorite.
Cible TPE, PME et cabinets. Cegid Y2 (on-premise) et Cegid Loop (cloud) ont des methodes d’export differentes mais des structures de donnees proches.
Cegid Y2 propose un module “Export parametrable” (menu Outils) qui genere des fichiers CSV structures avec selection des colonnes. C’est la methode la plus propre : colonnes nommees, format de date coherent, montants en virgule decimale. Pour Cegid Loop, l’API REST est disponible si l’abonnement l’inclut (connector Power BI natif en beta).
-- Structure type d'un export Cegid Y2 (ecritures) :
Colonnes attendues :
JournalCode | JournalLib | EcritureNum | EcritureDate
CompteNum | CompteLib | Debit | Credit
PieceRef | PieceDate | EcritureLib | ValidDate
-- Power Query : nettoyage minimal
let
Source = Csv.Document(
File.Contents("C:Exportscegid_ecritures.csv"),
[Delimiter=";", Encoding=65001, QuoteStyle=QuoteStyle.None]
),
EnTetes = Table.PromoteHeaders(Source),
TypesOk = Table.TransformColumnTypes(EnTetes, {
{"EcritureDate", type date},
{"Debit", type number},
{"Credit", type number}
}),
-- Colonne montant net (Debit - Credit)
MontantNet = Table.AddColumn(TypesOk, "MontantNet",
each [Debit] - [Credit], type number)
in
MontantNetLes montants negatifs en comptabilite francaise peuvent etre encodes comme des Debits negatifs (au lieu de Credits). Verifier systematiquement le signe des ecritures d’avoir sur les comptes de produits (classe 7) avant de construire les KPI.
Solution TPE/PME avec des exports relativement simples, mais des formats variables selon la version (EBP Pro, EBP Compta Open Line, EBP en ligne).
EBP Compta permet d’exporter le grand livre au format Excel ou CSV depuis Impressions > Grand livre. Privilegier l’export Excel (.xlsx) : les dates sont en format numerique natif, evitant les problemes de parsing. Pour EBP en ligne, le menu “Export comptable” genere directement un FEC.
-- Etapes Power Query pour export EBP Excel :
1. Obtenir des données > Classeur Excel
2. Selectionner la feuille "Grand Livre" ou "Ecritures"
-- Nettoyage type EBP :
let
Source = Excel.Workbook(
File.Contents("C:Exportsebp_grand_livre.xlsx"),
null, true
),
Feuille = Source{[Item="Feuil1"]}[Data],
EnTetes = Table.PromoteHeaders(Feuille),
-- EBP inclut souvent des lignes de sous-total : les supprimer
SansTotal = Table.SelectRows(EnTetes,
each [Compte] <> null and
not Text.StartsWith(Text.From([Compte]), "TOTAL")),
TypesOk = Table.TransformColumnTypes(SansTotal, {
{"Date", type date},
{"Debit", type number},
{"Credit", type number}
})
in
TypesOkEBP exporte parfois les montants avec une virgule comme separateur decimal et un espace comme separateur de milliers (ex : “1 234,56”). Power Query interprete cela comme du texte. Utiliser Number.FromText apres Text.Replace pour corriger les espaces.
Le format normalise par la DGFiP (article L.47 A du LPF). Produit par tous les logiciels comptables conformes. Structure identique quelle que soit la source : le connecteur Power Query s’ecrit une seule fois.
-- Connecteur FEC universel (fonctionne sur Sage, Cegid, EBP, QuadraCompta...)
ImportFEC = (cheminFichier as text) =>
let
-- Le FEC est en UTF-8 avec separateur tabulation (|) selon norme DGFiP
Source = Csv.Document(
File.Contents(cheminFichier),
[Delimiter="|", Encoding=65001, QuoteStyle=QuoteStyle.None]
),
EnTetes = Table.PromoteHeaders(Source),
TypesOk = Table.TransformColumnTypes(EnTetes, {
{"EcritureDate", type date},
{"PieceDate", type date},
{"ValidDate", type date},
{"Debit", type number},
{"Credit", type number}
}),
-- Colonne montant net (convention : produits en Credit, charges en Debit)
AvecMontantNet = Table.AddColumn(TypesOk, "MontantNet",
each [Debit] - [Credit], type number),
-- Classe comptable pour filtrage rapide
AvecClasse = Table.AddColumn(AvecMontantNet, "ClasseCompte",
each Number.IntegerDivide(Number.FromText(
Text.Start([CompteNum], 1)), 1), Int64.Type)
in
AvecClasse| Logiciel | Chemin menu |
|---|---|
| Sage 100 | Traitements > Export comptable > FEC |
| Cegid Y2 | Outils > Export parametrable > Format FEC |
| Cegid Loop | Parametres > Export > Fichier FEC |
| EBP Compta | Impressions > Export comptable > FEC |
| EBP en ligne | Exercices > Telechargement > FEC |
| QuadraCompta | Traitements > Editions > Generation FEC |
Le FEC couvre un exercice complet et se genere generalement a la cloture ou sur demande. Il n’est pas concu pour une mise a jour hebdomadaire ou mensuelle automatique. Pour du reporting en temps reel, privilegier le connecteur ODBC (Sage, EBP Open Line) ou l’API (Cegid Loop).
Methode optimale, format de sortie, mise a jour et complexite de mise en place.
| Logiciel | Methode optimale | MAJ auto | Mise en place |
|---|---|---|---|
| Sage 100 | ODBC natif | Oui | 2-4h |
| Cegid Y2 | Export CSV parametrable | Partielle | 1-2h |
| Cegid Loop | API REST | Oui | 4-8h |
| EBP Compta | Export Excel grand livre | Manuelle | 1-2h |
| EBP Open Line | ODBC SQL Server | Oui | 2-4h |
| Tout logiciel | FEC (format DGFiP) | Non | < 1h |
La connexion etablie, le travail de structuration commence. Sans ces etapes, les formules DAX produiront des resultats incorrects.
Une table Calendrier avec une ligne par jour, couvrant au moins 3 ans. Indispensable pour TOTALYTD, DATEADD, et toutes les comparaisons temporelles. Marquer comme "Table de dates" dans Power BI.
Creer une table de correspondance CompteNum > Rubrique (ex : 706xxx > "Prestations de services") pour agréger les ecritures en KPI metier. Sans cette table, vous obtenez des listes de comptes, pas des ratios.
Calculer le Total Debit - Total Credit de l'import. Ce montant doit etre nul (comptabilite en partie double). S'il ne l'est pas, des lignes ont ete perdues dans le nettoyage.
Le test de sante a faire en premier : SUM(Debit) - SUM(Credit) = 0. Si ce n’est pas le cas, votre source de donnees contient des ecritures orphelines ou le filtre de periode a coupe des contreparties.
La connexion est etablie. Les donnees sont propres. La prochaine etape : construire les mesures DAX qui transforment ces ecritures en KPI financiers actionnables.
CALCULATE, TOTALYTD, DATEADD, DIVIDE, VAR/RETURN : les 5 patterns DAX pour produire marge filtree, DSO, cumul YTD et comparatif N/N-1.
Voir les formules DAXMission de 3 semaines : connexion de vos sources comptables, modelisation, formules DAX, dashboard livre avec formation. Autonomie totale a l’issue.
Planifier un echange