--- name: BI-Import_donnees_eet description: >- Procedure Excel pour l'import mensuel des donnees EET (fournisseur) dans la table BI.dbo.achat_fournisseur_eet. A utiliser des que l'utilisateur envoie l'extract mensuel EET, ouvre le fichier "Import eet template", ou parle d'"integrer les donnees EET", "import eet", "achat_fournisseur_eet", "Achat TD INGRAM", "decouper par mois", "preparer le concat / la formule d'insert", ou d'ajouter la feuille du mois courant. Ce skill decrit uniquement des manipulations dans Excel (mise en forme du tableau du mois + formule CONCATENER a adapter) ; il ne genere pas de script. --- # Integrer les donnees EET (import mensuel dans Excel) ## Contexte Chaque mois, EET envoie un extract Excel de ses ventes : une colonne `Customer Name` puis une colonne par mois (`2026M01`, `2026M02`, ...). Chaque envoi ajoute la colonne du mois qui vient d'etre cloture. Le travail consiste, dans Excel, a preparer la feuille du nouveau mois et a poser la formule d'insert SQL adaptee, puis a executer l'insert et verifier. Fichier de travail (template qui contient la formule de reference et la liste des mois deja importes) : `T:\XEFI_SOFTWARE\Exploitation\INTERNE\EQUIPE SI\BI\WORKSPACE\CREATION\achat franchise tech ingram\Import eet template.xlsx` Table de controle apres import : **Menu general achats > Achat TD INGRAM**. Ce skill ne fait que des manipulations Excel. Ne pas ecrire de script : le but est de mettre en forme un tableau pour le mois et d'inserer la formule adaptee au mois. ## Formule de reference ``` =CONCATENER("insert into BI.dbo.achat_fournisseur_eet (Customers,NetSellPrice,Quantity,party,BillingDocsDate,providers) values ('"&A5&"','"&B5&"',1,'"&A5&"','2026-01-01','eet')") ``` D'un mois a l'autre, **seule la date `BillingDocsDate` change** : c'est le 1er jour du mois traite (`2026-06-01` pour juin, `2026-07-01` pour juillet, ...). `A5` = Customer Name, `B5` = valeur du mois (NetSellPrice), `party` reprend `A5`, `providers` reste `'eet'`. ## Etapes dans Excel 1. **Importer l'extract dans `raw_data`.** Ouvrir le template ci-dessus. Coller le nouvel extract EET dans la feuille `raw_data` (en remplacant le precedent), puis mettre la plage **sous forme de tableau** : selectionner les donnees, *Insertion > Tableau* (ou Ctrl+L), cocher "Mon tableau comporte des en-tetes". 2. **Reperer le dernier mois.** C'est la colonne mensuelle la plus a droite qui contient des valeurs (le nouveau mois, ex `2026M06`). Verifier dans le suivi du template qu'il n'a pas deja ete importe, puis ne travailler que sur cette colonne. 3. **Creer la feuille du mois.** Nouvelle feuille nommee en francais, sans accent : `janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, decembre`. 4. **Remplir le tableau du mois.** Dans `raw_data`, filtrer la colonne du mois pour exclure les cellules vides, puis reporter dans la feuille du mois : - colonne A : `Customer Name` (uniquement les clients ayant une valeur ce mois-la) ; - colonne B : la valeur du mois. Ne garder aucune ligne vide. 5. **Poser la formule d'insert adaptee.** En C5 (1re ligne de donnees), reprendre la formule de reference en changeant la date pour le 1er du mois traite, puis l'etirer jusqu'en bas. Exemple pour juin : ``` =CONCATENER("insert into BI.dbo.achat_fournisseur_eet (Customers,NetSellPrice,Quantity,party,BillingDocsDate,providers) values ('"&A5&"','"&B5&"',1,'"&A5&"','2026-06-01','eet')") ``` 6. **Faire l'insert et verifier.** Copier la colonne C (les inserts generes), les executer sur SQL Server, puis controler le resultat via *Menu general achats > Achat TD INGRAM*. Noter le mois comme importe dans le suivi du template. ## Points de vigilance (fiabilite du SQL) Ces deux points cassent silencieusement les inserts ; les verifier avant d'executer. - **Decimales en virgule.** En locale FR, `"&B5&"` transforme `25,51` en texte `25,51` (virgule), ce qui n'est pas du SQL valide. Deux facons de securiser : - s'assurer que la colonne B contient de vrais **nombres** (alignes a droite) et non du texte, et remplacer `"&B5&"` par une version qui force le point : `"&SUBSTITUE(B5;",";".")&"` (SUBSTITUE = SUBSTITUTE en anglais). Formule complete : ``` =CONCATENER("insert into BI.dbo.achat_fournisseur_eet (Customers,NetSellPrice,Quantity,party,BillingDocsDate,providers) values ('"&A5&"','"&SUBSTITUE(B5;",";".")&"',1,'"&A5&"','2026-06-01','eet')") ``` - si les valeurs arrivent en **texte** avec des espaces de milliers (`1 250,00`), retirer aussi les espaces : `"&SUBSTITUE(SUBSTITUE(B5;" ";"");",";".")&"`. - **Apostrophes dans les noms.** Un nom comme `O'Brien` casse la requete. Doubler l'apostrophe avec `SUBSTITUE(A5;"'";"''")` a la place de `A5` dans la formule. ## A confirmer avec l'utilisateur en cas de doute - Plusieurs colonnes mensuelles remplies : confirmer lequel est le mois a importer. - Valeurs a zero : par defaut on les traite comme les autres ; a exclure seulement si l'utilisateur le precise. - `party` = Customer Name : c'est le format historique repris de la formule ; ne le signaler que si l'utilisateur attend autre chose.