@echo off setlocal EnableExtensions DisableDelayedExpansion REM === PARAMETRES ============================================================= set "ROOT=C:\Users\miche\PycharmProjects\Ratio_Inventaires" set "DEV_XLSM=%ROOT%\Excel\dev\Ratio_dev.xlsm" set "PROD_DIR=%ROOT%\Excel\prod" set "PROD_XLSM=%PROD_DIR%\Ratio_prod.xlsm" set "INSTALL_CLIENT=%ROOT%\Fichiers_Install_Clients" set "VERSION_TXT=%ROOT%\Excel\dev\VERSION.txt" set "SHEET_NAME=Tableau de bord" set "CELL_ADDR=P1" set "SETCELL_VBS=C:\Users\miche\PycharmProjects\Ratio_Inventaires\Scripts\set_cell_silent.vbs" REM ============================================================================ REM Date ISO (yyyy_MM_dd) REM ============================================================================ for /f %%i in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy_MM_dd\")"') do set "DATESTAMP=%%i" set "ARCHIVE_FILE=%PROD_DIR%\Ratio_prod_%DATESTAMP%.xlsm" echo( echo( === [1/4] Préparation des dossiers ======================================= if not exist "%PROD_DIR%" mkdir "%PROD_DIR%" if not exist "%INSTALL_CLIENT%" mkdir "%INSTALL_CLIENT%" if not exist "%DEV_XLSM%" ( echo( [ERREUR] Fichier DEV introuvable: %DEV_XLSM% endlocal & exit /b 1 ) if not exist "%VERSION_TXT%" ( echo 1.0.0 > "%VERSION_TXT%" echo( [INFO] VERSION.txt manquant -> initialisé à 1.0.0 ) REM --------------------------------------------------------------------------- REM [2/4] Synchroniser P1 (Tableau de bord) = VERSION.txt, sans macros/événements REM --------------------------------------------------------------------------- echo( echo( === [2/4] Mise a jour P1 depuis VERSION.txt [macros/evenements off] ===== set "NEW_VER=" set /p NEW_VER=<"%VERSION_TXT%" set "NEW_VER=%NEW_VER: =%" if "%NEW_VER%"=="" ( echo( [ERREUR] VERSION.txt est vide. Mets une valeur ex: 2.1.3 et relance. endlocal & exit /b 1 ) echo( Version a ecrire en P1 : %NEW_VER% if not exist "%SETCELL_VBS%" ( echo( [WARN] VBS absent: "%SETCELL_VBS%". P1 ne sera pas mis a jour, on continue. ) else ( cscript //nologo "%SETCELL_VBS%" "%DEV_XLSM%" "%SHEET_NAME%" "%CELL_ADDR%" "%NEW_VER%" if errorlevel 1 ( echo( [WARN] Echec mise a jour P1. On continue. ) else ( echo( [OK] P1 mis a jour dans DEV : %NEW_VER% ) ) REM --------------------------------------------------------------------------- REM [3/4] Sauvegarde de la PROD courante REM --------------------------------------------------------------------------- echo( echo( === [3/4] Sauvegarde de la PROD courante ================================= if exist "%PROD_XLSM%" ( echo( Sauvegarde -> "%ARCHIVE_FILE%" copy /Y "%PROD_XLSM%" "%ARCHIVE_FILE%" >nul ) else ( echo( Pas de PROD courante à sauvegarder. ) REM --------------------------------------------------------------------------- REM [4/4] Copie DEV -> PROD et Dossier client + nettoyage archives REM --------------------------------------------------------------------------- echo( echo( === [4/4] Copie DEV -^> PROD ^& Dossier client ============================= copy /Y "%DEV_XLSM%" "%PROD_XLSM%" >nul || ( echo( [ERREUR] Copie DEV -> PROD echouee. endlocal & exit /b 1 ) REM --- Livraison client depuis la PROD (sans ajout de protection) --- copy /Y "%PROD_XLSM%" "%INSTALL_CLIENT%\Ratio_prod.xlsm" >nul || ( echo( [ERREUR] Copie vers INSTALL_CLIENT echouee. endlocal & exit /b 1 ) REM ecrire la version cote PROD pour verification rapide echo %NEW_VER% > "%PROD_DIR%\VERSION.txt" pushd "%PROD_DIR%" >nul setlocal EnableDelayedExpansion set count=0 for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do ( set /a count+=1 if !count! gtr 5 del "%%f" ) endlocal popd >nul REM --------------------------------------------------------------------------- REM Nettoyage: garder 5 archives REM --------------------------------------------------------------------------- pushd "%PROD_DIR%" >nul setlocal EnableDelayedExpansion set count=0 for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do ( set /a count+=1 if !count! gtr 5 del "%%f" ) endlocal popd >nul echo( echo( [OK] Mise à jour terminée : echo( - Version : %NEW_VER% echo( - PROD : "%PROD_XLSM%" echo( - CLIENT : "%INSTALL_CLIENT%\Ratio_prod.xlsm" echo( - PROD\VERSION.txt: %NEW_VER% echo( endlocal & exit /b 0