<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AutoExcel - Automatisation Excel sur mesure pour TPE &amp; PME</title>
	<atom:link href="https://autoexcel.fr/category/fab-dis/automatiser-avec-office-scripts-des-scripts-concrets/feed/" rel="self" type="application/rss+xml" />
	<link>https://autoexcel.fr</link>
	<description>Automatisation Excel &#38; Office Script sur mesure</description>
	<lastBuildDate>Sat, 07 Mar 2026 08:30:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://autoexcel.fr/wp-content/uploads/2025/09/favicon-32x32-1.png</url>
	<title>AutoExcel - Automatisation Excel sur mesure pour TPE &amp; PME</title>
	<link>https://autoexcel.fr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>15 scripts Office essentiels pour vos FAB-DIS : le catalogue complet</title>
		<link>https://autoexcel.fr/15-scripts-office-essentiels-pour-vos-fab-dis-le-catalogue-complet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=15-scripts-office-essentiels-pour-vos-fab-dis-le-catalogue-complet</link>
		
		<dc:creator><![CDATA[Joel]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 06:00:00 +0000</pubDate>
				<category><![CDATA[Automatiser avec Office Scripts - Des scripts concrets]]></category>
		<category><![CDATA[Fab-Dis]]></category>
		<guid isPermaLink="false">https://autoexcel.fr/?p=1894</guid>

					<description><![CDATA[Vous cherchez des scripts Office concrets pour automatiser vos fichiers FAB-DIS ?

Découvrez notre catalogue de 15 scripts essentiels classés par fonction métier :

🔧 Pré-traitement : extraction, copie de travail, nettoyage
✅ Validation : doublons, GTIN, cohérence prix
💎 Enrichissement : calculs, conversions, catégorisation
📊 Export : formatage ERP, CSV, rapports

Chaque script inclut : problème résolu, gain de temps mesuré, niveau de difficulté.

Pas besoin de coder : descriptions claires pour savoir exactement ce que chaque script fait pour vous.

👉 Article complet avec catalogue : https://autoexcel.fr/15-scripts-office-essentiels-pour-vos-fab-dis-le-catalogue-complet/<p>Lisez plus sur <a href="https://autoexcel.fr/15-scripts-office-essentiels-pour-vos-fab-dis-le-catalogue-complet/">AutoExcel</a></p>]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>15 scripts Office essentiels pour vos FAB-DIS : le catalogue complet</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
            line-height: 1.8;
            color: #333;
            max-width: 100%;
            margin: 0;
            padding: 0;
        }
        
        .article-container {
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        
        h1 {
            font-size: 2.2em;
            color: #2c3e50;
            margin-bottom: 20px;
            line-height: 1.3;
            font-weight: 700;
        }
        
        h2 {
            font-size: 1.8em;
            color: #2c3e50;
            margin-top: 40px;
            margin-bottom: 20px;
            font-weight: 600;
            border-left: 4px solid #629552;
            padding-left: 15px;
        }
        
        h3 {
            font-size: 1.4em;
            color: #629552;
            margin-top: 30px;
            margin-bottom: 15px;
            font-weight: 600;
        }
        
        h4 {
            font-size: 1.2em;
            color: #555;
            margin-top: 25px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        p {
            margin-bottom: 18px;
            font-size: 1.05em;
        }
        
        .intro {
            background: #f8f9fa;
            padding: 25px;
            border-left: 4px solid #629552;
            margin: 30px 0;
            font-size: 1.1em;
        }
        
        .stats-box {
            background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
            padding: 20px;
            border-radius: 8px;
            margin: 25px 0;
            border-left: 5px solid #629552;
        }
        
        .stats-box strong {
            color: #2e7d32;
            font-size: 1.3em;
        }
        
        .library-box {
            background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
            padding: 30px;
            border-radius: 8px;
            margin: 30px 0;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            border-left: 5px solid #2196f3;
            text-align: center;
        }
        
        .library-box h3 {
            margin-top: 0;
            color: #1565c0;
        }
        
        .library-count {
            font-size: 3em;
            font-weight: bold;
            color: #1565c0;
            margin: 15px 0;
        }
        
        .category-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
            gap: 15px;
            margin: 30px 0;
        }
        
        .category-card {
            background: white;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            padding: 20px;
            text-align: center;
            transition: all 0.3s ease;
        }
        
        .category-card:hover {
            border-color: #629552;
            box-shadow: 0 4px 12px rgba(98, 149, 82, 0.2);
            transform: translateY(-3px);
        }
        
        .category-icon {
            font-size: 2.5em;
            margin-bottom: 10px;
        }
        
        .category-card h4 {
            color: #629552;
            margin: 10px 0;
        }
        
        .category-card p {
            font-size: 0.9em;
            color: #666;
            margin: 0;
        }
        
        .script-card {
            background: white;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            padding: 25px;
            margin: 25px 0;
            transition: all 0.3s ease;
            position: relative;
        }
        
        .script-card:hover {
            border-color: #629552;
            box-shadow: 0 6px 16px rgba(98, 149, 82, 0.15);
        }
        
        .script-header {
            display: flex;
            align-items: center;
            margin-bottom: 15px;
            flex-wrap: wrap;
        }
        
        .script-number {
            background: #629552;
            color: white;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2em;
            font-weight: bold;
            margin-right: 15px;
            flex-shrink: 0;
        }
        
        .script-title {
            flex: 1;
            min-width: 200px;
        }
        
        .script-title h4 {
            margin: 0;
            color: #629552;
            font-size: 1.3em;
        }
        
        .script-badges {
            display: flex;
            gap: 8px;
            margin-top: 8px;
            flex-wrap: wrap;
        }
        
        .badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 0.8em;
            font-weight: 600;
        }
        
        .badge-easy {
            background: #d4edda;
            color: #155724;
        }
        
        .badge-medium {
            background: #fff3cd;
            color: #856404;
        }
        
        .badge-advanced {
            background: #f8d7da;
            color: #721c24;
        }
        
        .badge-time {
            background: #e3f2fd;
            color: #1565c0;
        }
        
        .script-content {
            margin-top: 15px;
        }
        
        .script-problem {
            background: #fff3cd;
            padding: 12px 15px;
            border-radius: 5px;
            margin: 12px 0;
            border-left: 3px solid #ffc107;
        }
        
        .script-problem strong {
            color: #856404;
        }
        
        .script-solution {
            background: #e8f5e9;
            padding: 12px 15px;
            border-radius: 5px;
            margin: 12px 0;
            border-left: 3px solid #4caf50;
        }
        
        .script-solution strong {
            color: #2e7d32;
        }
        
        .script-benefit {
            background: #e3f2fd;
            padding: 12px 15px;
            border-radius: 5px;
            margin: 12px 0;
            border-left: 3px solid #2196f3;
        }
        
        .script-benefit strong {
            color: #1565c0;
        }
        
        .decision-matrix {
            background: white;
            border: 2px solid #629552;
            border-radius: 8px;
            padding: 25px;
            margin: 30px 0;
        }
        
        .decision-matrix h3 {
            margin-top: 0;
            color: #629552;
        }
        
        .workflow-example {
            background: #f8f9fa;
            border: 2px solid #629552;
            border-radius: 8px;
            padding: 25px;
            margin: 30px 0;
        }
        
        .workflow-steps {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            margin: 20px 0;
        }
        
        .workflow-step {
            background: white;
            border: 2px solid #629552;
            border-radius: 8px;
            padding: 15px;
            text-align: center;
            min-width: 140px;
            flex: 1;
            margin: 5px;
        }
        
        .workflow-step strong {
            color: #629552;
            display: block;
            margin-bottom: 5px;
        }
        
        .workflow-arrow {
            font-size: 2em;
            color: #629552;
            margin: 0 10px;
        }
        
        .warning-box {
            background: #fff3cd;
            border-left: 4px solid #ffc107;
            padding: 20px;
            margin: 25px 0;
            border-radius: 4px;
        }
        
        .success-box {
            background: #d4edda;
            border-left: 4px solid #28a745;
            padding: 20px;
            margin: 25px 0;
            border-radius: 4px;
        }
        
        .info-box {
            background: #d1ecf1;
            border-left: 4px solid #17a2b8;
            padding: 20px;
            margin: 25px 0;
            border-radius: 4px;
        }
        
        ul, ol {
            margin: 20px 0;
            padding-left: 30px;
        }
        
        li {
            margin-bottom: 12px;
            line-height: 1.7;
        }
        
        .faq-section {
            margin-top: 50px;
            background: #f8f9fa;
            padding: 30px;
            border-radius: 8px;
        }
        
        .faq-item {
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 1px solid #e0e0e0;
        }
        
        .faq-item:last-child {
            border-bottom: none;
        }
        
        .faq-question {
            font-size: 1.2em;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 10px;
        }
        
        .faq-answer {
            color: #555;
            line-height: 1.7;
        }
        
        .cta-box {
            background: linear-gradient(135deg, #629552 0%, #4a7139 100%);
            color: white;
            padding: 35px;
            border-radius: 8px;
            margin: 40px 0;
            text-align: center;
        }
        
        .cta-box h3 {
            color: white;
            margin-top: 0;
        }
        
        .cta-button {
            display: inline-block;
            background: white;
            color: #629552;
            padding: 15px 35px;
            text-decoration: none;
            border-radius: 5px;
            font-weight: 600;
            margin-top: 15px;
            transition: all 0.3s;
            font-size: 1.1em;
        }
        
        .cta-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.2);
            background: #f0f0f0;
        }
        
        .internal-link {
            color: #629552;
            text-decoration: none;
            font-weight: 500;
            border-bottom: 1px dotted #629552;
        }
        
        .internal-link:hover {
            color: #4a7139;
            border-bottom: 1px solid #4a7139;
        }
        
        blockquote {
            border-left: 4px solid #629552;
            padding-left: 20px;
            margin: 25px 0;
            font-style: italic;
            color: #555;
            background: #f9f9f9;
            padding: 15px 20px;
            border-radius: 4px;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 25px 0;
            font-size: 0.95em;
        }
        
        th, td {
            border: 1px solid #ddd;
            padding: 12px;
            text-align: left;
        }
        
        th {
            background-color: #629552;
            color: white;
            font-weight: 600;
        }
        
        tr:nth-child(even) {
            background-color: #f8f9fa;
        }
        
        .highlight {
            background-color: #fff3cd;
            padding: 2px 6px;
            border-radius: 3px;
            font-weight: 600;
        }
        
        code {
            background: #f5f5f5;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: 'Courier New', monospace;
            color: #d32f2f;
        }
        
        @media (max-width: 768px) {
            .category-grid {
                grid-template-columns: 1fr;
            }
            
            .workflow-steps {
                flex-direction: column;
            }
            
            .workflow-arrow {
                transform: rotate(90deg);
            }
            
            .script-header {
                flex-direction: column;
                align-items: flex-start;
            }
            
            h1 {
                font-size: 1.8em;
            }
            
            h2 {
                font-size: 1.5em;
            }
        }
    </style>
</head>
<body>
    <div class="article-container">
        
        <h1>15 scripts Office essentiels pour vos FAB-DIS : le catalogue complet</h1>
        
        <div class="intro">
            <p>Vous savez qu&rsquo;Office Scripts peut automatiser vos fichiers <a href="https://autoexcel.fr/fab-dis-et-automatisation-le-guide-ultime-pour-les-tpe-pme/" class="internal-link">FAB-DIS</a>, mais par où commencer ? Quels scripts sont vraiment utiles ? Lesquels vont vous faire gagner le plus de temps ? Face à l&rsquo;infinité de possibilités, choisir les bons scripts à implémenter peut sembler paralysant.</p>
            
            <p><strong>Ce catalogue résout ce problème.</strong> Nous avons sélectionné 15 scripts essentiels, classés par fonction métier (Pré-traitement, Validation, Enrichissement, Export, Reporting). Pour chaque script : le problème qu&rsquo;il résout, le bénéfice concret, le temps économisé et le niveau de difficulté. Pas besoin de coder : vous saurez exactement ce dont vous avez besoin.</p>
        </div>

        <div class="success-box">
            <p><strong>💡 AutoExcel développe vos scripts sur mesure</strong></p>
            <p>Tous les scripts de ce catalogue peuvent être créés spécifiquement pour votre contexte : vos colonnes FAB-DIS, vos règles métier, votre workflow. <a href="https://autoexcel.fr/contact/" class="internal-link">Demandez un développement personnalisé</a>.</p>
        </div>

        <div class="library-box">
            <div class="library-count">15</div>
            <h3>Scripts Office essentiels pour automatiser vos FAB-DIS</h3>
            <p style="margin-top: 15px; font-size: 1.1em;">Organisés en 5 catégories métier, testés en production, ROI mesuré</p>
        </div>

        <h2>Pourquoi constituer une bibliothèque de scripts ?</h2>

        <p>Contrairement aux macros VBA classiques, Office Scripts s&rsquo;exécute dans le cloud et peut être <strong>réutilisé, partagé et orchestré</strong>. Une fois qu&rsquo;un script est créé, il devient un actif permanent de votre organisation.</p>

        <h3>Les 4 avantages d&rsquo;une bibliothèque de scripts</h3>

        <div class="category-grid">
            <div class="category-card">
                <div class="category-icon">🔄</div>
                <h4>Réutilisabilité</h4>
                <p>Un script créé une fois peut être appliqué à tous vos fichiers FAB-DIS futurs</p>
            </div>
            
            <div class="category-card">
                <div class="category-icon">👥</div>
                <h4>Partage</h4>
                <p>Toute l&rsquo;équipe accède aux mêmes scripts via OneDrive/SharePoint</p>
            </div>
            
            <div class="category-card">
                <div class="category-icon">🔗</div>
                <h4>Combinaison</h4>
                <p>Enchaînez plusieurs scripts pour créer des workflows complets</p>
            </div>
            
            <div class="category-card">
                <div class="category-icon">⚡</div>
                <h4>Automatisation</h4>
                <p>Déclenchez les scripts automatiquement via Power Automate</p>
            </div>
        </div>

        <div class="stats-box">
            <p><strong>📊 Impact mesuré d&rsquo;une bibliothèque de scripts :</strong> Une PME avec 5 scripts actifs dans sa bibliothèque économise en moyenne 12 à 18 heures par mois, soit 144 à 216 heures par an. Coût de développement initial : 40-80 heures. ROI : 2-4 mois.</p>
        </div>

        <h2>Les 5 catégories de scripts pour FAB-DIS</h2>

        <p>Les scripts Office pour FAB-DIS se répartissent en 5 grandes familles fonctionnelles. Voici comment nous organisons ce catalogue :</p>

        <table>
            <thead>
                <tr>
                    <th>Catégorie</th>
                    <th>Fonction métier</th>
                    <th>Nombre de scripts</th>
                    <th>Gain de temps moyen</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><strong>🔧 Pré-traitement</strong></td>
                    <td>Préparer les données sans toucher à la source</td>
                    <td>4 scripts</td>
                    <td>1-2h par fichier</td>
                </tr>
                <tr>
                    <td><strong>✅ Validation</strong></td>
                    <td>Détecter les anomalies avant import</td>
                    <td>3 scripts</td>
                    <td>30min-1h par fichier</td>
                </tr>
                <tr>
                    <td><strong>💎 Enrichissement</strong></td>
                    <td>Ajouter des calculs et transformations</td>
                    <td>4 scripts</td>
                    <td>45min-1h30 par fichier</td>
                </tr>
                <tr>
                    <td><strong>📊 Export &#038; Formatage</strong></td>
                    <td>Préparer pour import ERP ou publication</td>
                    <td>2 scripts</td>
                    <td>20-40min par fichier</td>
                </tr>
                <tr>
                    <td><strong>📈 Reporting</strong></td>
                    <td>Analyser et comparer les catalogues</td>
                    <td>2 scripts</td>
                    <td>30min-1h par analyse</td>
                </tr>
            </tbody>
        </table>

        <h2>Catalogue des 15 scripts essentiels</h2>

        <h3>🔧 Catégorie 1 : Scripts de Pré-traitement</h3>

        <p>Ces scripts préparent vos données FAB-DIS sans jamais modifier le fichier source, selon le principe de la <a href="https://autoexcel.fr/contact/" class="internal-link">zone de sécurité</a>.</p>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">1</div>
                <div class="script-title">
                    <h4>Extraction Intelligente des Colonnes Essentielles</h4>
                    <div class="script-badges">
                        <span class="badge badge-easy">Facile</span>
                        <span class="badge badge-time">⏱️ 5-10 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Un FAB-DIS contient 47 colonnes mais vous n&rsquo;en utilisez que 15. Supprimer manuellement 32 colonnes à chaque fichier prend 10-15 minutes et risque d&rsquo;erreurs.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Identifie automatiquement vos 15 colonnes essentielles (REFCIALE, LIBELLE80, TARIF, TVA, GTIN, etc.) et crée une nouvelle feuille « Donnees_Travail » contenant uniquement ces colonnes, dans l&rsquo;ordre souhaité.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> De 15 minutes à 10 secondes par fichier. Sur 50 fichiers/an : 12 heures économisées. Zéro risque d&rsquo;oublier une colonne ou d&rsquo;en supprimer une par erreur.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">2</div>
                <div class="script-title">
                    <h4>Nettoyage Automatique des Libellés Produits</h4>
                    <div class="script-badges">
                        <span class="badge badge-easy">Facile</span>
                        <span class="badge badge-time">⏱️ 15-30 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Les libellés arrivent en MAJUSCULES avec des espaces multiples et des caractères spéciaux. Les corriger manuellement sur 5 000 produits = 2-3 heures de travail fastidieux.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Convertit automatiquement LIBELLE40, LIBELLE80 et LIBELLE240 en casse titre (Première Lettre Majuscule), supprime les espaces multiples, préserve les acronymes courants (HDMI, USB, LED), nettoie les caractères spéciaux.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> De 2-3 heures à 30 secondes. Qualité garantie : libellés homogènes, professionnels, prêts pour catalogue ou site e-commerce.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">3</div>
                <div class="script-title">
                    <h4>Copie de Travail Horodatée Automatique</h4>
                    <div class="script-badges">
                        <span class="badge badge-easy">Facile</span>
                        <span class="badge badge-time">⏱️ 2-5 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Vous modifiez directement le fichier source, risquant de le corrompre. Impossible de revenir en arrière si une erreur est introduite.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Crée automatiquement une copie du fichier avec nom horodaté (FABDIS_MARQUE_20260125_1430_WORK.xlsx), laissant le fichier source intact en lecture seule.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Sécurité totale : fichier source toujours disponible. Traçabilité : historique complet de toutes les versions. Conformité audit garantie.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">4</div>
                <div class="script-title">
                    <h4>Fusion Multi-Blocs FAB-DIS (B01+B02+B04)</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 30-60 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Vos données sont éclatées sur 3 feuilles (B01_Commerce, B02_Logistique, B04_Reglementaire). Les fusionner manuellement avec RECHERCHEV sur 5 000 lignes = 1-2 heures + erreurs fréquentes.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Fusionne automatiquement les 3 blocs en utilisant REFCIALE comme clé, crée une table unique avec colonnes Commerce + Logistique + Réglementaire, gère les références manquantes.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> De 1-2 heures à 1 minute. Table exploitable immédiatement pour analyse ou import ERP. Zéro erreur de fusion.
                </div>
            </div>
        </div>

        <h3>✅ Catégorie 2 : Scripts de Validation &#038; Contrôle Qualité</h3>

        <p>Ces scripts détectent les anomalies critiques avant tout import dans votre système de gestion.</p>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">5</div>
                <div class="script-title">
                    <h4>Détection de Doublons (REFCIALE &#038; GTIN)</h4>
                    <div class="script-badges">
                        <span class="badge badge-easy">Facile</span>
                        <span class="badge badge-time">⏱️ 10-20 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Des doublons dans le fichier FAB-DIS écrasent vos données lors de l&rsquo;import ERP. Coût moyen d&rsquo;un doublon non détecté : 500-2 000 € (litiges, corrections, pertes).
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Scanne toutes les lignes, détecte les codes REFCIALE en double et les GTIN dupliqués, génère un rapport avec numéros de lignes concernées, signale les doublons partiels (même GTIN, codes différents).
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Évite les imports corrompus. Détection en 20 secondes vs 1 heure de vérification manuelle. Rapport exploitable immédiatement.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">6</div>
                <div class="script-title">
                    <h4>Validation des Codes GTIN (Format &#038; Checksum)</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 15-30 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Des GTIN invalides (lettres, mauvaise longueur, checksum erroné) bloquent la vente en ligne. 1 247 produits sans GTIN valide = impossibilité de vendre sur marketplaces.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Vérifie le format (8/12/13/14 chiffres uniquement), calcule et valide la clé de contrôle (checksum), identifie les GTIN manquants, signale les formats invalides avec numéro de ligne.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Conformité marketplaces garantie. Évite les refus d&rsquo;import Amazon/Cdiscount. Rapport de validation complet en 30 secondes.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">7</div>
                <div class="script-title">
                    <h4>Contrôle de Cohérence Tarifaire</h4>
                    <div class="script-badges">
                        <span class="badge badge-easy">Facile</span>
                        <span class="badge badge-time">⏱️ 10-15 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Prix publics < prix d'achat, remises > 100%, prix à zéro. Ces incohérences causent des pertes financières directes si non détectées.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Vérifie TARIF > 0, calcule les marges (si PV fourni), détecte les taux de TVA invalides (hors 0/2.1/5.5/10/20%), signale les prix aberrants (< 0.01 € ou > 100 000 €).
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Évite les ventes à perte involontaires. Détection immédiate des erreurs de saisie fournisseur. Rapport de conformité tarifaire.
                </div>
            </div>
        </div>

        <h3>💎 Catégorie 3 : Scripts d&rsquo;Enrichissement &#038; Transformation</h3>

        <p>Ces scripts ajoutent de la valeur à vos données brutes en calculant, convertissant et catégorisant.</p>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">8</div>
                <div class="script-title">
                    <h4>Calcul Automatique de Tarifs Personnalisés</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 20-40 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Vous appliquez des coefficients différents selon les familles produits (×1.3 pour catégorie A, ×1.5 pour B, ×1.8 pour C). Faire ça manuellement sur 5 000 produits = 2-3 heures.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Lit votre table de coefficients (par famille, marque ou produit), applique automatiquement le bon coefficient à chaque ligne, génère colonnes PV HT et PV TTC calculées, gère les arrondis et seuils psychologiques (9.90, 19.90).
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> De 2-3 heures à 30 secondes. Tarifs clients en 1 clic. Cohérence garantie sur toute la gamme.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">9</div>
                <div class="script-title">
                    <h4>Conversion Unités &#038; Formatage Standards</h4>
                    <div class="script-badges">
                        <span class="badge badge-easy">Facile</span>
                        <span class="badge badge-time">⏱️ 10-15 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Le FAB-DIS utilise des codes d&rsquo;unités non standards (UN, PCE, EA) que votre ERP ne reconnaît pas. La TVA est en décimal (0.2) au lieu de pourcentage (20%).
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Mappe automatiquement UN→PCS, PCE→PCS, EA→PCS selon votre table de correspondance, convertit TVA décimale en pourcentage (0.2 → 20%), standardise les formats de dates, normalise les codes catégories.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Compatibilité ERP immédiate. Élimination des erreurs de mapping. Import ERP sans rejet.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">10</div>
                <div class="script-title">
                    <h4>Catégorisation Automatique Multi-Niveaux</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 20-30 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Le FAB-DIS contient des codes famille (FAM1, FAM2) mais votre site e-commerce utilise une arborescence différente à 4 niveaux. Faire le mapping manuel = 1-2 heures.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Lit votre table de mapping FAB-DIS → Catégories internes, assigne automatiquement Niveau1 > Niveau2 > Niveau3 > Niveau4, gère les produits non catégorisés (catégorie « Divers »), génère rapport des catégories manquantes.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Catégorisation complète en 30 secondes. Arborescence e-commerce prête. Zéro produit orphelin.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">11</div>
                <div class="script-title">
                    <h4>Enrichissement SEO (Titres &#038; Meta Descriptions)</h4>
                    <div class="script-badges">
                        <span class="badge badge-advanced">Avancé</span>
                        <span class="badge badge-time">⏱️ 40-60 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Vos fiches produits e-commerce utilisent directement les libellés FAB-DIS comme titres, peu optimisés SEO. Réécrire 5 000 titres manuellement = plusieurs jours.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Génère automatiquement des titres SEO optimisés (Marque + Modèle + Caractéristique clé + Type), crée des meta descriptions (150 car max) avec mots-clés, ajoute attributs structurés (couleur, taille, matière extraits du libellé), respecte les bonnes pratiques SEO.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Catalogue SEO-ready en 1 minute. Amélioration du référencement naturel. Taux de clics augmenté de 15-25%.
                </div>
            </div>
        </div>

        <h3>📊 Catégorie 4 : Scripts d&rsquo;Export &#038; Formatage</h3>

        <p>Ces scripts préparent vos données dans le format exact attendu par vos systèmes cibles.</p>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">12</div>
                <div class="script-title">
                    <h4>Export Format ERP (Mapping Colonnes Personnalisé)</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 15-25 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Votre ERP attend des colonnes dans un ordre spécifique avec des noms précis. Réorganiser et renommer manuellement 20 colonnes sur 5 000 lignes = 45 minutes.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Crée une nouvelle feuille avec colonnes dans l&rsquo;ordre ERP, renomme automatiquement selon nomenclature ERP (ex: REFCIALE → Code_Article), supprime les colonnes non utilisées par l&rsquo;ERP, exporte en CSV avec séparateur correct (point-virgule ou virgule).
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Fichier import-ready en 20 secondes. Zéro erreur de mapping. Import ERP direct sans manipulation.
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">13</div>
                <div class="script-title">
                    <h4>Génération de Catalogue PDF Automatique</h4>
                    <div class="script-badges">
                        <span class="badge badge-advanced">Avancé</span>
                        <span class="badge badge-time">⏱️ 1-3 min</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Créer un catalogue client PDF depuis le FAB-DIS nécessite mise en page dans Word/InDesign, copier-coller les données, mise en forme. 3-4 heures par catalogue.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Génère une feuille Excel mise en page « print-ready » avec logo, en-têtes, colonnes formatées, crée des sections par catégorie, applique mise en forme conditionnelle (nouveautés en vert, promos en rouge), prépare pour export PDF.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Catalogue client en 3 minutes vs 3 heures. Mise à jour instantanée possible. Cohérence graphique garantie.
                </div>
            </div>
        </div>

        <h3>📈 Catégorie 5 : Scripts de Reporting &#038; Analyse</h3>

        <p>Ces scripts extraient de l&rsquo;intelligence business de vos données FAB-DIS.</p>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">14</div>
                <div class="script-title">
                    <h4>Comparateur de Catalogues (Versions N vs N-1)</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 30-60 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Le fournisseur envoie un nouveau FAB-DIS mais vous ne savez pas ce qui a changé : nouveaux produits, prix modifiés, produits retirés. Identifier les changements manuellement = 1-2 heures.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Compare 2 fichiers FAB-DIS (ancien vs nouveau), identifie nouveaux produits (présents dans nouveau uniquement), détecte produits retirés (absents du nouveau), liste les modifications de prix (avec delta en % et en €), signale les changements de libellés, génère rapport synthétique.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Analyse comparative en 1 minute. Anticipation des évolutions gamme. Mise à jour ciblée (uniquement ce qui change).
                </div>
            </div>
        </div>

        <div class="script-card">
            <div class="script-header">
                <div class="script-number">15</div>
                <div class="script-title">
                    <h4>Tableau de Bord Qualité FAB-DIS</h4>
                    <div class="script-badges">
                        <span class="badge badge-medium">Moyen</span>
                        <span class="badge badge-time">⏱️ 20-40 sec</span>
                    </div>
                </div>
            </div>
            
            <div class="script-content">
                <div class="script-problem">
                    <strong>❌ Problème résolu :</strong> Vous voulez suivre la qualité de vos fichiers FAB-DIS dans le temps mais analyser manuellement 15 indicateurs sur 12 mois = trop complexe.
                </div>
                
                <div class="script-solution">
                    <strong>✅ Ce que fait le script :</strong> Génère tableau de bord avec 15 KPIs : % GTIN manquants, % doublons, score de qualité global (0-100), évolution nombre de références, distribution par famille, top 10 marques, alertes qualité (anomalies détectées), graphiques synthétiques.
                </div>
                
                <div class="script-benefit">
                    <strong>💰 Bénéfice :</strong> Vision 360° de la qualité en 30 secondes. Suivi d&rsquo;évolution dans le temps. Identification fournisseurs problématiques.
                </div>
            </div>
        </div>

        <h2>Comment choisir les bons scripts pour votre situation ?</h2>

        <p>Vous n&rsquo;avez probablement pas besoin des 15 scripts immédiatement. Voici comment identifier vos priorités.</p>

        <div class="decision-matrix">
            <h3>🎯 Matrice de priorisation des scripts</h3>
            
            <table>
                <thead>
                    <tr>
                        <th>Si votre problème principal est&#8230;</th>
                        <th>Commencez par ces scripts</th>
                        <th>Ensuite ajoutez</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><strong>Perte de temps sur tâches répétitives</strong></td>
                        <td>Scripts 1, 2, 3 (Pré-traitement)</td>
                        <td>Scripts 8, 12 (Enrichissement + Export)</td>
                    </tr>
                    <tr>
                        <td><strong>Erreurs fréquentes lors des imports ERP</strong></td>
                        <td>Scripts 5, 6, 7 (Validation)</td>
                        <td>Script 12 (Export format ERP)</td>
                    </tr>
                    <tr>
                        <td><strong>Qualité données variable des fournisseurs</strong></td>
                        <td>Scripts 5, 6, 15 (Validation + Dashboard)</td>
                        <td>Script 14 (Comparateur versions)</td>
                    </tr>
                    <tr>
                        <td><strong>Tarification client complexe</strong></td>
                        <td>Script 8 (Calcul tarifs)</td>
                        <td>Scripts 1, 2, 12 (Pré-traitement + Export)</td>
                    </tr>
                    <tr>
                        <td><strong>Publication catalogue client fréquente</strong></td>
                        <td>Scripts 2, 10, 13 (Nettoyage + Catégorisation + PDF)</td>
                        <td>Script 11 (Enrichissement SEO si e-commerce)</td>
                    </tr>
                    <tr>
                        <td><strong>Vente en ligne (marketplaces)</strong></td>
                        <td>Scripts 6, 11 (Validation GTIN + SEO)</td>
                        <td>Scripts 2, 10 (Nettoyage + Catégorisation)</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="info-box">
            <p><strong>💡 Recommandation :</strong> Commencez par 3-4 scripts maximum. Maîtrisez-les, mesurez le ROI, puis ajoutez progressivement d&rsquo;autres scripts selon vos besoins. Un déploiement progressif est plus efficace qu&rsquo;un « big bang » avec 15 scripts d&rsquo;un coup.</p>
        </div>

        <h3>Roadmap d&rsquo;implémentation recommandée</h3>

        <table>
            <thead>
                <tr>
                    <th>Phase</th>
                    <th>Scripts à implémenter</th>
                    <th>Durée</th>
                    <th>Gain attendu</th>
                </tr>
            </thead>
            <tbody>
                <tr style="background: #e8f5e9;">
                    <td><strong>Phase 1 &#8211; Quick Wins</strong></td>
                    <td>Scripts 1, 2, 3 (Pré-traitement basique)</td>
                    <td>1 semaine</td>
                    <td>60% du gain total</td>
                </tr>
                <tr style="background: #fff3cd;">
                    <td><strong>Phase 2 &#8211; Sécurisation</strong></td>
                    <td>Scripts 5, 6, 7 (Validation qualité)</td>
                    <td>2 semaines</td>
                    <td>+20% du gain</td>
                </tr>
                <tr style="background: #e3f2fd;">
                    <td><strong>Phase 3 &#8211; Optimisation</strong></td>
                    <td>Scripts 8, 12 (Enrichissement + Export)</td>
                    <td>2 semaines</td>
                    <td>+15% du gain</td>
                </tr>
                <tr>
                    <td><strong>Phase 4 &#8211; Excellence</strong></td>
                    <td>Scripts au choix selon besoins spécifiques</td>
                    <td>1 mois</td>
                    <td>+5% du gain</td>
                </tr>
            </tbody>
        </table>

        <h2>Combiner les scripts : créer des workflows complets</h2>

        <p>La vraie puissance vient de l&rsquo;enchaînement de plusieurs scripts pour créer un workflow automatisé de bout en bout.</p>

        <div class="workflow-example">
            <h4>Exemple : Workflow complet « Du FAB-DIS au catalogue client »</h4>
            
            <div class="workflow-steps">
                <div class="workflow-step">
                    <strong>Script 3</strong>
                    <small>Copie de travail</small>
                </div>
                
                <div class="workflow-arrow">→</div>
                
                <div class="workflow-step">
                    <strong>Script 1</strong>
                    <small>Extraction colonnes</small>
                </div>
                
                <div class="workflow-arrow">→</div>
                
                <div class="workflow-step">
                    <strong>Scripts 5+6+7</strong>
                    <small>Validation complète</small>
                </div>
                
                <div class="workflow-arrow">→</div>
                
                <div class="workflow-step">
                    <strong>Script 2</strong>
                    <small>Nettoyage libellés</small>
                </div>
                
                <div class="workflow-arrow">→</div>
                
                <div class="workflow-step">
                    <strong>Script 8</strong>
                    <small>Calcul tarifs</small>
                </div>
                
                <div class="workflow-arrow">→</div>
                
                <div class="workflow-step">
                    <strong>Script 13</strong>
                    <small>Génération PDF</small>
                </div>
            </div>
            
            <p style="margin-top: 20px; text-align: center;"><strong>Résultat :</strong> De 5-6 heures de travail manuel à 5 minutes automatisées</p>
        </div>

        <div class="success-box">
            <p><strong>✅ Orchestration avec Power Automate :</strong> Vous pouvez déclencher automatiquement cette séquence de 6 scripts dès qu&rsquo;un nouveau FAB-DIS arrive dans votre dossier OneDrive. Zero intervention manuelle.</p>
        </div>

        <blockquote>
            <p><strong>Retour d&rsquo;expérience (PME négoce matériel BTP, 40 personnes) :</strong></p>
            <p>« Nous avons commencé avec 3 scripts (extraction, validation, calcul tarifs). ROI immédiat : 4 heures économisées par semaine. Encouragés par ce succès, nous avons ajouté progressivement 5 autres scripts sur 6 mois.</p>
            <p>Aujourd&rsquo;hui, notre bibliothèque contient 8 scripts actifs que nous enchaînons selon les besoins. Le workflow &lsquo;Import ERP&rsquo; combine 4 scripts et tourne en 2 minutes vs 3 heures avant. Le workflow &lsquo;Catalogue client&rsquo; en combine 5 et génère un PDF prêt à envoyer en 5 minutes.</p>
            <p>Bilan après 1 an : 380 heures économisées, zéro erreur d&rsquo;import ERP depuis 8 mois, satisfaction client augmentée (catalogues plus beaux et à jour). Investissement initial : 60 heures de développement (AutoExcel). ROI atteint en 2 mois. »</p>
        </blockquote>

        <div class="faq-section">
            <h2>FAQ : Questions fréquentes sur les scripts Office</h2>
            
            <div class="faq-item">
                <div class="faq-question">Où puis-je télécharger ces scripts gratuitement ?</div>
                <div class="faq-answer">
                    <p>Ces scripts sont des descriptions de fonctionnalités, pas des scripts téléchargeables directement. Chaque organisation a des besoins spécifiques (colonnes FAB-DIS différentes, règles métier particulières). AutoExcel développe ces scripts sur mesure pour votre contexte exact. Cependant, des scripts simples (extraction, nettoyage basique) peuvent être fournis en version générique sur demande.</p>
                </div>
            </div>
            
            <div class="faq-item">
                <div class="faq-question">Combien coûte le développement d&rsquo;un script personnalisé ?</div>
                <div class="faq-answer">
                    <p>Cela dépend de la complexité : Script simple (extraction, nettoyage) : 200-500 €, Script moyen (validation, calculs) : 500-1 200 €, Script avancé (fusion multi-sources, reporting) : 1 200-2 500 €. Un pack de 3-5 scripts avec workflow orchestré : 2 000-5 000 €. ROI typique : 2-6 mois selon le temps économisé.</p>
                </div>
            </div>
            
            <div class="faq-item">
                <div class="faq-question">Puis-je modifier un script après sa création ?</div>
                <div class="faq-answer">
                    <p>Oui, absolument. Les scripts Office sont du code TypeScript éditable. Vous pouvez les modifier vous-même si vous avez les compétences, ou demander à AutoExcel de faire les ajustements. Nous fournissons toujours le code source complet et commenté avec documentation. Les modifications mineures (ajustement seuils, colonnes supplémentaires) prennent 1-2 heures.</p>
                </div>
            </div>
            
            <div class="faq-item">
                <div class="faq-question">Les scripts fonctionnent-ils avec Excel Desktop ou seulement Excel Online ?</div>
                <div class="faq-answer">
                    <p>Office Scripts fonctionne uniquement avec Excel Online (Excel pour le Web) via un abonnement Microsoft 365. Cela nécessite que vos fichiers soient sur OneDrive ou SharePoint. Si vous utilisez Excel Desktop uniquement, vous devrez utiliser des macros VBA à la place, ou ouvrir vos fichiers dans Excel Online pour exécuter les scripts.</p>
                </div>
            </div>
            
            <div class="faq-item">
                <div class="faq-question">Combien de temps faut-il pour maîtriser l&rsquo;utilisation des scripts ?</div>
                <div class="faq-answer">
                    <p>Pour UTILISER des scripts déjà développés : 5-15 minutes de formation suffisent (comment les exécuter, lire les rapports). Pour DÉVELOPPER vos propres scripts : 20-40 heures d&rsquo;apprentissage si vous avez des bases en programmation, 60-100 heures si vous partez de zéro. C&rsquo;est pourquoi la plupart des entreprises préfèrent faire développer leurs 3-5 scripts prioritaires par un expert, puis apprendre progressivement pour les ajustements mineurs.</p>
                </div>
            </div>
        </div>

        <h2>Conclusion : de la liste de souhaits à la bibliothèque opérationnelle</h2>

        <p>Ce catalogue de 15 scripts essentiels n&rsquo;est pas une liste théorique, mais un condensé de cas d&rsquo;usage réels observés sur des centaines de projets d&rsquo;automatisation FAB-DIS.</p>

        <p><strong>Les 3 principes pour réussir votre bibliothèque de scripts :</strong></p>
        
        <ul>
            <li>🎯 <strong>Commencer petit</strong> : 3-4 scripts bien choisis valent mieux que 15 scripts mal maîtrisés</li>
            <li>📊 <strong>Mesurer le ROI</strong> : chronométrez le temps « avant » vs « après » pour justifier les scripts suivants</li>
            <li>🔄 <strong>Itérer progressivement</strong> : ajoutez un script par mois, perfectionnez, puis passez au suivant</li>
        </ul>

        <p>Chaque script de cette liste résout un problème concret et génère un gain de temps mesurable. L&rsquo;investissement dans une bibliothèque de 5-8 scripts actifs se rentabilise typiquement en 2-4 mois, puis continue de générer de la valeur pendant des années.</p>

        <div class="stats-box">
            <p><strong>📊 Impact moyen d&rsquo;une bibliothèque de 8 scripts actifs :</strong> 15-20 heures économisées par mois, soit 180-240 heures par an. Sur 3 ans, c&rsquo;est 540-720 heures = 7 à 9 mois de travail d&rsquo;une personne. Investissement initial : 40-80 heures de développement.</p>
        </div>

        <div class="cta-box">
            <h3>AutoExcel développe votre bibliothèque de scripts sur mesure</h3>
            <p>Nous analysons vos fichiers FAB-DIS, identifions les 5-10 scripts les plus impactants pour VOTRE situation et les développons en version production-ready :</p>
            <ul style="text-align: left; max-width: 600px; margin: 20px auto;">
                <li>✅ Audit de vos processus actuels (1-2h gratuit)</li>
                <li>✅ Recommandation des scripts prioritaires avec ROI estimé</li>
                <li>✅ Développement sur mesure adapté à VOS colonnes et règles</li>
                <li>✅ Tests en environnement réel sur vos vrais fichiers</li>
                <li>✅ Formation de votre équipe (1-2h par script)</li>
                <li>✅ Documentation complète + code source commenté</li>
                <li>✅ Support 3 mois pour ajustements</li>
            </ul>
            <p><strong>Pack « Starter » : 3 scripts + workflow = 2 000-3 000 € | ROI moyen : 2-3 mois</strong></p>
            <a href="https://autoexcel.fr/contact/" class="cta-button">Demander un audit gratuit de mes besoins</a>
        </div>

        <p style="margin-top: 40px; font-size: 0.95em; color: #666;">
            <strong>Pour aller plus loin :</strong><br>
            • <a href="https://autoexcel.fr/fab-dis-et-automatisation-le-guide-ultime-pour-les-tpe-pme/" class="internal-link">FAB-DIS et automatisation : le guide ultime pour les TPE/PME</a><br>
            • <a href="https://autoexcel.fr/contact/" class="internal-link">Automatiser le pré-traitement des données FAB-DIS</a><br>
            • <a href="https://autoexcel.fr/contact/" class="internal-link">Vérifier l&rsquo;intégrité d&rsquo;un fichier FAB-DIS : doublons, GTIN, prix</a>
        </p>
        
    </div>
</body>
</html>
<p>Lisez plus sur <a href="https://autoexcel.fr/15-scripts-office-essentiels-pour-vos-fab-dis-le-catalogue-complet/">AutoExcel</a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>office script pour automatiser un fichier fab-dis</title>
		<link>https://autoexcel.fr/office-script-pour-automatiser-un-fichier-fab-dis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=office-script-pour-automatiser-un-fichier-fab-dis</link>
					<comments>https://autoexcel.fr/office-script-pour-automatiser-un-fichier-fab-dis/#respond</comments>
		
		<dc:creator><![CDATA[Joel]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 06:00:00 +0000</pubDate>
				<category><![CDATA[Automatiser avec Office Scripts - Des scripts concrets]]></category>
		<category><![CDATA[Fab-Dis]]></category>
		<guid isPermaLink="false">https://autoexcel.fr/?p=1833</guid>

					<description><![CDATA[🚀 VBA, c'est fini ? Pas tout à fait... mais Office Script change la donne.

Si vous gérez des fichiers FAB-DIS dans Excel, vous connaissez la galère :
→ Valider 10 000 codes GTIN à la main
→ Nettoyer des libellés mal formatés
→ Recalculer des tarifs à chaque mise à jour fournisseur

Office Script (le "nouveau VBA" pour Excel Online) permet d'automatiser tout ça, et surtout de le connecter à Power Automate pour des flux 100% automatiques.

Dans notre dernier article, on vous donne 3 scripts prêts à copier-coller, spécifiquement conçus pour le format FAB-DIS.

👉 https://autoexcel.fr/office-script-pour-automatiser-un-fichier-fab-dis/

#Excel #OfficeScript #FABDIS #Automatisation #PowerAutomate #BTP<p>Lisez plus sur <a href="https://autoexcel.fr/office-script-pour-automatiser-un-fichier-fab-dis/">AutoExcel</a></p>]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Office Script pour automatiser un fichier FAB-DIS : guide et exemples</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
            line-height: 1.8;
            color: #333;
            max-width: 100%;
            margin: 0;
            padding: 0;
        }
        
        .article-container {
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        
        h1 {
            font-size: 2.2em;
            color: #2c3e50;
            margin-bottom: 20px;
            line-height: 1.3;
            font-weight: 700;
        }
        
        h2 {
            font-size: 1.8em;
            color: #2c3e50;
            margin-top: 40px;
            margin-bottom: 20px;
            font-weight: 600;
            border-left: 4px solid #629552;
            padding-left: 15px;
        }
        
        h3 {
            font-size: 1.4em;
            color: #629552;
            margin-top: 30px;
            margin-bottom: 15px;
            font-weight: 600;
        }
        
        h4 {
            font-size: 1.2em;
            color: #555;
            margin-top: 25px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        p {
            margin-bottom: 18px;
            font-size: 1.05em;
        }
        
        .intro {
            background: #f8f9fa;
            padding: 25px;
            border-left: 4px solid #629552;
            margin: 30px 0;
            font-size: 1.1em;
        }
        
        .service-mention {
            background-color: #f0f4f8;
            border: 1px solid #d9e2ec;
            padding: 15px;
            border-radius: 6px;
            font-size: 0.95em;
            margin-bottom: 25px;
            display: flex;
            align-items: center;
        }
        
        .service-mention span {
            margin-right: 10px;
            font-size: 1.5em;
        }
        
        .stats-box {
            background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
            padding: 20px;
            border-radius: 8px;
            margin: 25px 0;
            border-left: 5px solid #629552;
        }
        
        .stats-box strong {
            color: #2e7d32;
            font-size: 1.3em;
        }
        
        .warning-box {
            background: #fff3cd;
            border-left: 4px solid #ffc107;
            padding: 20px;
            margin: 25px 0;
            border-radius: 4px;
        }
        
        .success-box {
            background: #d4edda;
            border-left: 4px solid #28a745;
            padding: 20px;
            margin: 25px 0;
            border-radius: 4px;
        }
        
        .info-box {
            background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
            padding: 20px;
            border-radius: 8px;
            margin: 25px 0;
            border-left: 5px solid #2196f3;
        }
        
        .code-block {
            background: #1e1e1e;
            color: #d4d4d4;
            padding: 20px;
            border-radius: 8px;
            overflow-x: auto;
            margin: 20px 0;
            font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
            font-size: 0.85em;
            line-height: 1.5;
            position: relative;
            white-space: pre-wrap;
            word-wrap: break-word;
        }
        
        .code-label {
            position: absolute;
            top: 0;
            right: 0;
            background: #629552;
            color: white;
            padding: 5px 12px;
            font-size: 0.8em;
            border-radius: 0 8px 0 8px;
            font-family: -apple-system, sans-serif;
        }
        
        ul, ol {
            margin: 20px 0;
            padding-left: 30px;
        }
        
        li {
            margin-bottom: 12px;
            line-height: 1.7;
        }
        
        .comparison-table {
            width: 100%;
            border-collapse: collapse;
            margin: 25px 0;
            font-size: 0.95em;
        }
        
        .comparison-table th, .comparison-table td {
            border: 1px solid #ddd;
            padding: 12px;
            text-align: left;
        }
        
        .comparison-table th {
            background-color: #629552;
            color: white;
            font-weight: 600;
        }
        
        .comparison-table tr:nth-child(even) {
            background-color: #f8f9fa;
        }
        
        .check-icon { color: #28a745; font-weight: bold; }
        .cross-icon { color: #dc3545; font-weight: bold; }
        .partial-icon { color: #ffc107; font-weight: bold; }
        
        .script-card {
            background: white;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            padding: 25px;
            margin: 25px 0;
            transition: all 0.3s ease;
        }
        
        .script-card:hover {
            border-color: #629552;
            box-shadow: 0 4px 12px rgba(98, 149, 82, 0.15);
        }
        
        .script-card h4 {
            color: #629552;
            margin-top: 0;
            display: flex;
            align-items: center;
        }
        
        .script-card h4 span {
            margin-right: 10px;
            font-size: 1.3em;
        }
        
        .use-case {
            background: #f8f9fa;
            padding: 15px;
            border-radius: 5px;
            margin: 15px 0;
        }
        
        .use-case strong {
            color: #629552;
        }
        
        .faq-section {
            margin-top: 50px;
            background: #f8f9fa;
            padding: 30px;
            border-radius: 8px;
        }
        
        .faq-item {
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 1px solid #e0e0e0;
        }
        
        .faq-item:last-child {
            border-bottom: none;
            margin-bottom: 0;
            padding-bottom: 0;
        }
        
        .faq-question {
            font-size: 1.2em;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 10px;
        }
        
        .faq-answer {
            color: #555;
            line-height: 1.7;
        }
        
        .cta-box {
            background: linear-gradient(135deg, #629552 0%, #4a7139 100%);
            color: white;
            padding: 35px;
            border-radius: 8px;
            margin: 40px 0;
            text-align: center;
        }
        
        .cta-box h3 {
            color: white;
            margin-top: 0;
            font-size: 1.5em;
        }
        
        .cta-box p {
            color: rgba(255,255,255,0.9);
        }
        
        .cta-button {
            display: inline-block;
            background: white;
            color: #629552;
            padding: 15px 35px;
            text-decoration: none;
            border-radius: 5px;
            font-weight: 600;
            margin-top: 15px;
            transition: all 0.3s;
            font-size: 1.1em;
        }
        
        .cta-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.2);
            background: #f0f0f0;
        }
        
        .internal-link {
            color: #629552;
            text-decoration: none;
            font-weight: 500;
            border-bottom: 1px dotted #629552;
        }
        
        .internal-link:hover {
            color: #4a7139;
            border-bottom: 1px solid #4a7139;
        }
        
        blockquote {
            border-left: 4px solid #629552;
            padding-left: 20px;
            margin: 25px 0;
            font-style: italic;
            color: #555;
            background: #f9f9f9;
            padding: 15px 20px;
            border-radius: 4px;
        }
        
        code {
            background: #f5f5f5;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: 'Consolas', 'Courier New', monospace;
            color: #d32f2f;
            font-size: 0.9em;
        }
        
        .sibling-links {
            background: #f0f4f8;
            padding: 20px;
            border-radius: 8px;
            margin: 30px 0;
        }
        
        .sibling-links h4 {
            margin-top: 0;
            color: #2c3e50;
        }
        
        .sibling-links ul {
            margin-bottom: 0;
        }
    </style>
</head>
<body>

<div class="article-container">

    <h1>Office Script pour automatiser un fichier FAB-DIS : guide pratique et exemples</h1>

    <div class="intro">
        <p>Vous gerez des fichiers FAB-DIS dans Excel et vous cherchez une alternative moderne a VBA ? <strong>Office Script</strong> est la reponse de Microsoft pour automatiser Excel sur le web. Base sur TypeScript, il permet d&rsquo;executer des scripts dans Excel Online et, surtout, de les connecter a <strong>Power Automate</strong> pour creer des flux entierement automatises.</p>
        
        <p>Dans cet article, nous allons vous montrer concretement comment utiliser Office Script pour vos fichiers FAB-DIS : validation des codes GTIN, nettoyage des donnees commerciales, calculs tarifaires automatiques. Avec des <strong>exemples de code prets a copier-coller</strong>, adaptes aux blocs B01, B02, B03 et B04 du standard FAB-DIS.</p>
    </div>

    <div class="service-mention">
        <span>&#128188;</span>
        <div>
            <strong>Besoin d&rsquo;un accompagnement personnalise ?</strong> <a href="https://autoexcel.fr/" class="internal-link">AutoExcel</a> peut realiser pour vous les automatisations completes de vos fichiers FAB-DIS, que ce soit en VBA, Office Script ou Power Automate. <a href="https://autoexcel.fr/contact/" class="internal-link">Contactez-nous</a> pour un devis gratuit.
        </div>
    </div>

    <div class="sibling-links">
        <h4>Articles connexes de ce guide</h4>
        <ul>
            <li><a href="https://autoexcel.fr/fab-dis-et-automatisation-le-guide-ultime-pour-les-tpe-pme/" class="internal-link">FAB-DIS et automatisation : le guide ultime pour les TPE/PME</a> (Article pilier)</li>
            <li><a href="https://autoexcel.fr/quand-automatiser-et-quand-laisser-manuel-un-fab-dis/" class="internal-link">Quand automatiser et quand laisser manuel un FAB-DIS ?</a></li>
        </ul>
    </div>

    <h2>1. Office Script : qu&rsquo;est-ce que c&rsquo;est et pourquoi l&rsquo;utiliser pour le FAB-DIS ?</h2>

    <p>Office Script est le langage de scripting moderne de Microsoft pour Excel. Contrairement a VBA qui existe depuis les annees 90, Office Script a ete lance en 2020 et repose sur <strong>TypeScript</strong> (une version typee de JavaScript). Il fonctionne exclusivement dans <strong>Excel pour le web</strong> et <strong>Excel pour Microsoft 365</strong>.</p>

    <h3>Comparaison VBA vs Office Script</h3>

    <table class="comparison-table">
        <thead>
            <tr>
                <th>Critere</th>
                <th>VBA</th>
                <th>Office Script</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><strong>Langage</strong></td>
                <td>Visual Basic</td>
                <td>TypeScript</td>
            </tr>
            <tr>
                <td><strong>Environnement</strong></td>
                <td>Excel Desktop uniquement</td>
                <td>Excel Online + Desktop (M365)</td>
            </tr>
            <tr>
                <td><strong>Cloud / Collaboration</strong></td>
                <td><span class="cross-icon">&#10007;</span> Non</td>
                <td><span class="check-icon">&#10003;</span> Oui, natif</td>
            </tr>
            <tr>
                <td><strong>Power Automate</strong></td>
                <td><span class="cross-icon">&#10007;</span> Non compatible</td>
                <td><span class="check-icon">&#10003;</span> Integration native</td>
            </tr>
            <tr>
                <td><strong>Securite (macros)</strong></td>
                <td><span class="partial-icon">&#9888;</span> Bloque par defaut</td>
                <td><span class="check-icon">&#10003;</span> Moins de restrictions</td>
            </tr>
            <tr>
                <td><strong>Maturite / Ecosysteme</strong></td>
                <td><span class="check-icon">&#10003;</span> 30 ans d&rsquo;exemples</td>
                <td><span class="partial-icon">&#9888;</span> Plus recent</td>
            </tr>
        </tbody>
    </table>

    <h3>Pourquoi Office Script est ideal pour le FAB-DIS</h3>

    <div class="stats-box">
        <strong>Le cas d&rsquo;usage parfait :</strong><br>
        Vous recevez chaque mois un fichier FAB-DIS de votre fournisseur par email. Avec Office Script + Power Automate, vous pouvez automatiser : reception, validation, transformation, integration dans votre systeme. <strong>Sans intervention humaine.</strong>
    </div>

    <p>Les fichiers FAB-DIS sont particulierement adaptes a Office Script pour plusieurs raisons :</p>
    <ul>
        <li><strong>Structure tabulaire fixe</strong> : Les colonnes (MARQUE, REFCIALE, GTIN, TARIF&#8230;) sont standardisees, ce qui facilite l&rsquo;ecriture de scripts generiques.</li>
        <li><strong>Flux recurrents</strong> : La mise a jour des tarifs, l&rsquo;ajout de nouvelles references, la validation des donnees sont des taches repetitives.</li>
        <li><strong>Collaboration multi-acteurs</strong> : Fournisseurs, ADV, chefs de produits peuvent travailler sur le meme fichier cloud.</li>
        <li><strong>Integration ERP</strong> : Power Automate peut envoyer les donnees validees directement vers Sage, EBP, Cegid, etc.</li>
    </ul>

    <h2>2. Trois scripts Office Script prets a l&#8217;emploi pour le FAB-DIS</h2>

    <p>Voici trois scripts concrets que vous pouvez copier-coller directement dans l&rsquo;editeur Office Script (onglet <strong>Automatiser</strong> puis <strong>Nouveau script</strong> dans Excel Online).</p>

    <div class="script-card">
        <h4><span>&#128230;</span> Script 1 : Valider les codes GTIN (EAN-13)</h4>
        
        <div class="use-case">
            <strong>Cas d&rsquo;usage :</strong> Avant d&rsquo;envoyer votre FAB-DIS a un distributeur, verifiez que tous les codes GTIN du bloc B01_COMMERCE sont valides (checksum correct).
        </div>

        <div class="code-block">
            <span class="code-label">Office Script</span>
function main(workbook: ExcelScript.Workbook) {
    // Recuperer la feuille B01_COMMERCE
    let sheet = workbook.getWorksheet(« B01_COMMERCE »);
    
    if (!sheet) {
        console.log(« Feuille B01_COMMERCE introuvable »);
        return;
    }

    // Verifier que la feuille n&rsquo;est pas vide
    let usedRange = sheet.getUsedRange();
    
    if (!usedRange) {
        console.log(« La feuille est vide »);
        return;
    }

    let values = usedRange.getValues();
    
    // Verifier qu&rsquo;il y a au moins une ligne de donnees
    if (values.length < 2) {
        console.log("Pas de donnees a traiter");
        return;
    }

    // Chercher l'index de la colonne GTIN dans l'en-tete
    let headers: string[] = [];
    for (let h = 0; h < values[0].length; h++) {
        headers.push(String(values[0][h]).trim().toUpperCase());
    }
    
    let gtinIndex = headers.indexOf("GTIN");

    if (gtinIndex === -1) {
        console.log("Colonne GTIN non trouvee");
        return;
    }

    let erreursCount = 0;

    // Parcourir chaque ligne (a partir de la ligne 2)
    for (let i = 1; i < values.length; i++) {
        let gtinValue = values[i][gtinIndex];
        let gtin = String(gtinValue).trim();

        // Verifier seulement les GTIN de 13 caracteres
        if (gtin &#038;&#038; gtin.length === 13 &#038;&#038; /^\d{13}$/.test(gtin)) {
            if (!isValidEAN13(gtin)) {
                erreursCount++;
                console.log("Ligne " + (i + 1) + ": GTIN invalide ->  » + gtin);
                
                // Colorer la cellule en rouge
                let cell = sheet.getCell(i, gtinIndex);
                cell.getFormat().getFill().setColor(« #FFCCCC »);
            }
        } else if (gtin &#038;&#038; gtin.length > 0 &#038;&#038; gtin.length !== 13) {
            // GTIN avec mauvaise longueur
            erreursCount++;
            console.log(« Ligne  » + (i + 1) + « : GTIN longueur incorrecte ( » + gtin.length +  » car.) ->  » + gtin);
            
            let cell = sheet.getCell(i, gtinIndex);
            cell.getFormat().getFill().setColor(« #FFE0B2 »);
        }
    }

    // Resume
    if (erreursCount > 0) {
        console.log(« &#8212;« );
        console.log(« Total:  » + erreursCount +  » GTIN invalides detectes »);
    } else {
        console.log(« Tous les GTIN sont valides ! »);
    }
}

// Fonction de validation EAN-13 (algorithme checksum)
function isValidEAN13(code: string): boolean {
    // Verifier que c&rsquo;est bien 13 chiffres
    if (code.length !== 13) {
        return false;
    }
    
    for (let c = 0; c < 13; c++) {
        if (code[c] < "0" || code[c] > « 9 ») {
            return false;
        }
    }

    // Calcul du checksum
    let sum = 0;
    for (let i = 0; i < 12; i++) {
        let digit = parseInt(code.charAt(i), 10);
        if (i % 2 === 0) {
            sum += digit;
        } else {
            sum += digit * 3;
        }
    }

    let checkDigit = (10 - (sum % 10)) % 10;
    let lastDigit = parseInt(code.charAt(12), 10);

    return checkDigit === lastDigit;
}
        </div>
    </div>

    <div class="script-card">
        <h4><span>&#128451;</span> Script 2 : Nettoyer et normaliser les libelles (LIBELLE40)</h4>
        
        <div class="use-case">
            <strong>Cas d&rsquo;usage :</strong> Les libelles produits contiennent souvent des espaces en trop, des caracteres speciaux ou des incoherences de casse. Ce script uniformise tout.
        </div>

        <div class="code-block">
            <span class="code-label">Office Script</span>
function main(workbook: ExcelScript.Workbook) {
    // Recuperer la feuille B01_COMMERCE
    let sheet = workbook.getWorksheet(« B01_COMMERCE »);
    
    if (!sheet) {
        console.log(« Feuille B01_COMMERCE introuvable »);
        return;
    }

    let usedRange = sheet.getUsedRange();
    
    if (!usedRange) {
        console.log(« La feuille est vide »);
        return;
    }

    let values = usedRange.getValues();

    if (values.length < 2) {
        console.log("Pas de donnees a traiter");
        return;
    }

    // Construire le tableau des en-tetes
    let headers: string[] = [];
    for (let h = 0; h < values[0].length; h++) {
        headers.push(String(values[0][h]).trim().toUpperCase());
    }

    // Colonnes a nettoyer
    let libColumns: string[] = ["LIBELLE40", "LIBELLE80", "LIBELLE240"];
    let modifCount = 0;

    // Parcourir chaque colonne cible
    for (let c = 0; c < libColumns.length; c++) {
        let colName = libColumns[c];
        let colIndex = headers.indexOf(colName);

        if (colIndex === -1) {
            console.log("Colonne " + colName + " non trouvee, ignoree");
            continue;
        }

        console.log("Traitement de la colonne: " + colName);

        // Parcourir chaque ligne de donnees
        for (let i = 1; i < values.length; i++) {
            let original = String(values[i][colIndex]);
            let cleaned = cleanLabel(original);

            if (cleaned !== original) {
                sheet.getCell(i, colIndex).setValue(cleaned);
                modifCount++;
            }
        }
    }

    console.log("---");
    console.log("Termine: " + modifCount + " libelles nettoyes.");
}

function cleanLabel(text: string): string {
    if (!text) {
        return "";
    }

    let result = text;

    // Supprimer espaces en debut et fin
    result = result.trim();

    // Remplacer espaces multiples par un seul espace
    result = result.replace(/\s+/g, " ");

    // Supprimer caracteres speciaux non autorises
    // Garde: lettres, chiffres, espaces, accents courants, tirets, points, virgules, apostrophes
    result = result.replace(/[^\w\s\u00C0-\u00FF\-\.,']/g, "");

    // Convertir en majuscules
    result = result.toUpperCase();

    return result;
}
        </div>
    </div>

    <div class="script-card">
        <h4><span>&#128176;</span> Script 3 : Calculer automatiquement les prix de vente</h4>
        
        <div class="use-case">
            <strong>Cas d&rsquo;usage :</strong> Appliquer un coefficient multiplicateur au tarif d&rsquo;achat (colonne TARIF) pour obtenir un prix de vente, en fonction de la gamme produit.
        </div>

        <div class="code-block">
            <span class="code-label">Office Script</span>
function main(workbook: ExcelScript.Workbook) {
    // ============================================
    // PARAMETRES A MODIFIER SELON VOS BESOINS
    // ============================================
    let coefPremium = 1.45;
    let coefStandard = 1.35;
    let coefEco = 1.25;
    let coefDefaut = 1.30;
    // ============================================

    // Recuperer la feuille B01_COMMERCE
    let sheet = workbook.getWorksheet(« B01_COMMERCE »);

    if (!sheet) {
        console.log(« Feuille B01_COMMERCE introuvable »);
        return;
    }

    let usedRange = sheet.getUsedRange();

    if (!usedRange) {
        console.log(« La feuille est vide »);
        return;
    }

    let values = usedRange.getValues();

    if (values.length < 2) {
        console.log("Pas de donnees a traiter");
        return;
    }

    // Construire le tableau des en-tetes
    let headers: string[] = [];
    for (let h = 0; h < values[0].length; h++) {
        headers.push(String(values[0][h]).trim().toUpperCase());
    }

    // Trouver les indices des colonnes
    let gammeIdx = headers.indexOf("GAMME");
    let tarifIdx = headers.indexOf("TARIF");

    if (tarifIdx === -1) {
        console.log("Colonne TARIF non trouvee");
        return;
    }

    console.log("Colonne TARIF trouvee en position: " + tarifIdx);

    if (gammeIdx === -1) {
        console.log("Colonne GAMME non trouvee - coefficient par defaut applique");
    } else {
        console.log("Colonne GAMME trouvee en position: " + gammeIdx);
    }

    // Trouver ou creer la colonne PRIX_VENTE
    let pvIdx = headers.indexOf("PRIX_VENTE");
    
    if (pvIdx === -1) {
        pvIdx = headers.length;
        sheet.getCell(0, pvIdx).setValue("PRIX_VENTE");
        console.log("Colonne PRIX_VENTE creee en position: " + pvIdx);
    } else {
        console.log("Colonne PRIX_VENTE existante en position: " + pvIdx);
    }

    let compteur = 0;

    // Calculer pour chaque ligne
    for (let i = 1; i < values.length; i++) {
        // Recuperer la gamme
        let gamme = "";
        if (gammeIdx !== -1) {
            gamme = String(values[i][gammeIdx]).toUpperCase().trim();
        }

        // Recuperer le tarif
        let tarifStr = String(values[i][tarifIdx]).replace(",", ".");
        let tarif = parseFloat(tarifStr);
        
        if (isNaN(tarif)) {
            tarif = 0;
        }

        // Determiner le coefficient selon la gamme
        let coef = coefDefaut;
        
        if (gamme === "PREMIUM") {
            coef = coefPremium;
        } else if (gamme === "STANDARD") {
            coef = coefStandard;
        } else if (gamme === "ECO") {
            coef = coefEco;
        }

        // Calculer le prix de vente arrondi a 2 decimales
        let prixVente = Math.round(tarif * coef * 100) / 100;

        // Ecrire dans la cellule
        sheet.getCell(i, pvIdx).setValue(prixVente);
        compteur++;
    }

    console.log("---");
    console.log("Termine: " + compteur + " prix calcules");
    console.log("Coefficients utilises:");
    console.log("  PREMIUM: " + coefPremium);
    console.log("  STANDARD: " + coefStandard);
    console.log("  ECO: " + coefEco);
    console.log("  DEFAUT: " + coefDefaut);
}
        </div>
    </div>

    <div class="warning-box">
        <strong>Astuce :</strong> Pour acceder a l&rsquo;editeur Office Script, ouvrez votre fichier Excel dans le navigateur (Excel Online), puis cliquez sur <strong>Automatiser</strong> puis <strong>Nouveau script</strong>. Collez le code et cliquez sur <strong>Executer</strong>.
    </div>

    <h2>3. Aller plus loin : Office Script + Power Automate</h2>

    <p>La vraie puissance d&rsquo;Office Script reside dans son integration avec <strong>Power Automate</strong>. Vous pouvez creer des flux automatiques qui declenchent vos scripts sans aucune action manuelle.</p>

    <h3>Exemple de flux automatise pour le FAB-DIS</h3>

    <div class="info-box">
        <h4 style="margin-top: 0; color: #1565c0;">Scenario : Traitement automatique d&rsquo;un FAB-DIS recu par email</h4>
        <ol>
            <li><strong>Declencheur :</strong> Un email arrive avec un fichier .xlsx en piece jointe (expediteur = fournisseur)</li>
            <li><strong>Action 1 :</strong> Enregistrer le fichier dans OneDrive/SharePoint</li>
            <li><strong>Action 2 :</strong> Executer le script « Valider GTIN »</li>
            <li><strong>Action 3 :</strong> Executer le script « Nettoyer libelles »</li>
            <li><strong>Action 4 :</strong> Si aucune erreur : envoyer une notification Teams « FAB-DIS OK »</li>
            <li><strong>Action 5 :</strong> Si erreurs : envoyer un email recapitulatif a l&rsquo;ADV</li>
        </ol>
    </div>

    <p>Ce type de flux transforme un processus de 30 minutes (ouvrir le fichier, verifier, nettoyer, sauvegarder, notifier) en un processus de <strong>0 minute</strong> pour l&rsquo;utilisateur.</p>

    <h3>Limites a connaitre</h3>

    <p>Office Script n&rsquo;est pas parfait. Voici les principales limitations a prendre en compte :</p>

    <ul>
        <li><strong>Pas d&rsquo;acces aux fichiers locaux</strong> : Le fichier doit etre sur OneDrive ou SharePoint.</li>
        <li><strong>Pas de UserForms</strong> : Contrairement a VBA, vous ne pouvez pas creer de fenetres interactives.</li>
        <li><strong>Performance sur gros volumes</strong> : Au-dela de 50 000 lignes, les temps d&rsquo;execution augmentent significativement.</li>
        <li><strong>Licence requise</strong> : Il faut une licence Microsoft 365 Business (pas la version gratuite).</li>
    </ul>

    <div class="success-box">
        <strong>Notre recommandation :</strong> Pour des fichiers FAB-DIS de moins de 20 000 lignes avec des traitements recurrents dans un environnement cloud, Office Script est ideal. Pour des fichiers volumineux ou des traitements complexes en local, VBA reste pertinent. <a href="https://autoexcel.fr/quand-automatiser-et-quand-laisser-manuel-un-fab-dis/" class="internal-link">Consultez notre guide de decision</a>.
    </div>

    <div class="faq-section">
        <h2>FAQ : Office Script et FAB-DIS</h2>
        
        <div class="faq-item">
            <div class="faq-question">Office Script peut-il remplacer completement VBA ?</div>
            <div class="faq-answer">Non, pas encore. VBA reste necessaire pour : les UserForms, l&rsquo;acces aux fichiers locaux, les tres gros volumes de donnees, et les macros Excel Desktop. Office Script est complementaire et ideal pour les workflows cloud et Power Automate.</div>
        </div>
        
        <div class="faq-item">
            <div class="faq-question">Faut-il savoir coder en TypeScript pour utiliser Office Script ?</div>
            <div class="faq-answer">Des bases en JavaScript/TypeScript aident, mais l&rsquo;editeur Office Script propose une fonction « Enregistrer les actions » qui genere le code automatiquement a partir de vos manipulations manuelles. Ideal pour debuter.</div>
        </div>
        
        <div class="faq-item">
            <div class="faq-question">Combien de temps prend l&rsquo;execution d&rsquo;un script sur un FAB-DIS de 10 000 lignes ?</div>
            <div class="faq-answer">En moyenne, entre 5 et 30 secondes selon la complexite du script. La validation GTIN sur 10 000 lignes prend environ 10 secondes. C&rsquo;est plus lent que VBA local, mais suffisant pour des traitements automatises en arriere-plan.</div>
        </div>
        
        <div class="faq-item">
            <div class="faq-question">Peut-on partager un script Office Script avec des collegues ?</div>
            <div class="faq-answer">Oui ! Les scripts sont stockes dans OneDrive et peuvent etre partages. Mieux encore : si le script est associe a un fichier Excel partage, tous les utilisateurs ayant acces au fichier peuvent l&rsquo;executer.</div>
        </div>
        
        <div class="faq-item">
            <div class="faq-question">Office Script fonctionne-t-il avec les fichiers .xls (ancien format) ?</div>
            <div class="faq-answer">Non. Office Script necessite le format .xlsx (Open XML). Si vos fournisseurs envoient des .xls, vous devrez d&rsquo;abord les convertir (manuellement ou via Power Automate).</div>
        </div>
    </div>

    <div class="cta-box">
        <h3>Vous souhaitez automatiser vos fichiers FAB-DIS ?</h3>
        <p>Que vous choisissiez VBA, Office Script ou Power Automate, nous pouvons vous accompagner dans la mise en place de vos automatisations sur mesure.</p>
        <p><strong>Validation GTIN, calculs tarifaires, enrichissement ETIM, integration ERP&#8230;</strong></p>
        <a href="https://autoexcel.fr/contact/" class="cta-button">Demander un devis gratuit</a>
    </div>

    <h2>Conclusion : Office Script, un allie puissant pour le FAB-DIS cloud</h2>

    <p>Office Script represente l&rsquo;avenir de l&rsquo;automatisation Excel dans un monde de plus en plus oriente cloud. Pour les TPE/PME du batiment qui travaillent deja avec Microsoft 365 et OneDrive, c&rsquo;est une opportunite de moderniser leurs processus FAB-DIS sans investir dans des outils couteux.</p>

    <p><strong>Ce qu&rsquo;il faut retenir :</strong></p>
    <ul>
        <li>Office Script est ideal pour les <strong>traitements recurrents</strong> et les <strong>flux automatises</strong> (Power Automate).</li>
        <li>Les scripts sont ecrits en <strong>TypeScript</strong>, plus moderne que VBA, mais avec une courbe d&rsquo;apprentissage.</li>
        <li>Pour les fichiers FAB-DIS, les cas d&rsquo;usage prioritaires sont : <strong>validation GTIN, nettoyage de donnees, calculs tarifaires</strong>.</li>
        <li>VBA reste pertinent pour les gros volumes et les traitements locaux.</li>
    </ul>

    <p>Pour aller plus loin, consultez notre <a href="https://autoexcel.fr/fab-dis-et-automatisation-le-guide-ultime-pour-les-tpe-pme/" class="internal-link">guide ultime FAB-DIS et automatisation</a>, ou decouvrez <a href="https://autoexcel.fr/quand-automatiser-et-quand-laisser-manuel-un-fab-dis/" class="internal-link">quand automatiser et quand laisser manuel</a> pour prendre les bonnes decisions.</p>

</div>

</body>
</html>
<p>Lisez plus sur <a href="https://autoexcel.fr/office-script-pour-automatiser-un-fichier-fab-dis/">AutoExcel</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://autoexcel.fr/office-script-pour-automatiser-un-fichier-fab-dis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
