2025-08-19 14:40:11 +02:00
2026-05-02 15:01:05 +02:00
2026-05-10 16:12:23 +02:00
2026-05-10 16:12:23 +02:00
2026-05-10 16:12:23 +02:00
2025-11-15 11:47:13 +01:00
2025-08-19 14:40:11 +02:00
2026-05-10 16:12:23 +02:00
2026-05-10 16:12:23 +02:00

Ratio Inventaires

Projet Excel/VBA permettant de gérer les inventaires, les articles, les fournisseurs, les factures, le chiffre daffaires et les ratios de consommation pour plusieurs activités.

Le projet est organisé pour travailler proprement avec PyCharm, Git/Gitea et des scripts de mise en production automatisés.


Objectif du projet

Le projet permet de maintenir plusieurs classeurs Excel métier :

  • Ratio_Cuisine.xlsm
  • Ratio_Restauration.xlsm
  • Démo_Ratio_Cuisine.xlsm

Les fichiers de développement sont conservés dans Excel/dev, puis copiés vers Excel/prod par des scripts de mise en production.

Le numéro de version est géré automatiquement par fichier .txt interne, puis écrit directement dans le classeur Excel livré.


Organisation des dossiers

Ratio_Inventaires/
│
├── Docs/
│
├── Excel/
│   ├── backup/
│   │   └── anciennes versions sauvegardées
│   │
│   ├── dev/
│   │   ├── Ratio_Cuisine_dev.xlsm
│   │   ├── Ratio_Cuisine_VERSION.txt
│   │   ├── Ratio_Restauration_dev.xlsm
│   │   └── Ratio_Restauration_VERSION.txt
│   │
│   └── prod/
│       ├── Démo_Ratio_Cuisine.xlsm
│       ├── Ratio_Cuisine.xlsm
│       └── Ratio_Restauration.xlsm
│
└── Scripts/
    ├── Maj_prod_Cuisine.bat
    ├── Maj_prod_Restauration.bat
    ├── maj_version.py
    └── set_cell_silent.vbs

Rôle des dossiers

Excel/dev

Contient les fichiers de travail.

Ratio_Cuisine_dev.xlsm
Ratio_Restauration_dev.xlsm

Ces fichiers sont les fichiers modifiables.

Les fichiers *_VERSION.txt restent uniquement dans dev. Ils servent de compteurs internes pour les scripts de versionnage.


Excel/prod

Contient les fichiers livrables.

Ratio_Cuisine.xlsm
Ratio_Restauration.xlsm
Démo_Ratio_Cuisine.xlsm

Les fichiers de production ne nécessitent plus de fichier .txt à côté. La version est directement écrite dans le classeur Excel.


Excel/backup

Contient les anciennes versions de production sauvegardées automatiquement avant remplacement.

Exemple :

Ratio_Cuisine_Vers1.0.15.xlsm
Ratio_Restauration_Vers2.1.3.xlsm

Le nombre de sauvegardes conservées est limité dans les scripts .bat.


Scripts

Contient les scripts dautomatisation :

Maj_prod_Cuisine.bat
Maj_prod_Restauration.bat
maj_version.py
set_cell_silent.vbs

Versionnage

Le projet utilise deux familles de versions :

Cuisine       → 1.x.x
Restauration  → 2.x.x

Les fichiers de version à conserver sont uniquement :

Excel/dev/Ratio_Cuisine_VERSION.txt
Excel/dev/Ratio_Restauration_VERSION.txt

Les fichiers .txt de version ne doivent plus être copiés dans Excel/prod.


Fonctionnement du script de version

Le script :

Scripts/maj_version.py

fait les opérations suivantes :

  1. lit le fichier *_VERSION.txt dans Excel/dev ;
  2. force le numéro majeur selon le classeur ;
  3. incrémente le patch ;
  4. réécrit le fichier .txt ;
  5. écrit la version directement dans le classeur Excel de production.

Exemple de version écrite dans Excel :

Version : 1.0.12
Version : 2.1.4

Lécriture dans le classeur Excel est faite par :

Scripts/set_cell_silent.vbs

Ce script ouvre Excel en arrière-plan, modifie la cellule de version, sauvegarde et ferme le classeur.


Cellule de version dans Excel

La version est écrite automatiquement dans la feuille :

Tableau de bord

La cellule utilisée doit être réservée à la version.

Recommandation actuelle :

E1 = Version : x.x.x

Attention : C1 est utilisé par le contexte du site, notamment SiteCanonique, et ne doit donc pas être utilisé pour la version.


Mise en production Cuisine

Depuis le dossier Scripts, lancer :

Maj_prod_Cuisine.bat CUISINE

Le script effectue :

  1. sauvegarde de lancienne version de production ;
  2. copie de Excel/dev/Ratio_Cuisine_dev.xlsm vers Excel/prod/Ratio_Cuisine.xlsm ;
  3. incrément de Excel/dev/Ratio_Cuisine_VERSION.txt ;
  4. écriture de la version dans le classeur de production ;
  5. nettoyage des anciennes sauvegardes.

Mise en production Restauration

Depuis le dossier Scripts, lancer :

Maj_prod_Restauration.bat RESTAURATION

Le script effectue :

  1. sauvegarde de lancienne version de production ;
  2. copie de Excel/dev/Ratio_Restauration_dev.xlsm vers Excel/prod/Ratio_Restauration.xlsm ;
  3. incrément de Excel/dev/Ratio_Restauration_VERSION.txt ;
  4. écriture de la version dans le classeur de production ;
  5. nettoyage des anciennes sauvegardes.

Fichier de démonstration

Le fichier :

Excel/prod/Démo_Ratio_Cuisine.xlsm

est destiné à présenter le fonctionnement sans installation réseau obligatoire.

Il peut contenir des données locales dans des feuilles de type :

DATA_Articles
DATA_Fournisseurs
DATA_Factures
DATA_Ca
DATA_Inventaires

La version démo peut fonctionner sans connexion MySQL, sans ODBC et sans fichier .txt distribué.

Recommandations pour la version démo :

  • données locales uniquement ;
  • pas didentifiants MySQL ;
  • pas de requêtes Power Query actives ;
  • pas de fichier de version .txt livré ;
  • limitation volontaire des ajouts pour éviter un usage réel non maîtrisé.

Connexions MySQL et ODBC

Les classeurs de production connectés peuvent utiliser MySQL via ODBC.

La version recommandée du pilote est :

MySQL ODBC 8.3 Unicode Driver

Sur les postes clients connectés, le pilote doit être installé avant utilisation.

La version démo locale, elle, ne doit pas dépendre du pilote ODBC.


Installation du pilote MySQL ODBC 8.3

Télécharger le pilote officiel :

mysql-connector-odbc-8.3.0-winx64.msi

Puis le placer dans :

C:\Installers\

Exemple de script dinstallation silencieuse :

@echo off
echo ===============================
echo Installation MySQL ODBC 8.3.0
echo ===============================

set MYPATH=C:\Installers
set INSTALLER=%MYPATH%\mysql-connector-odbc-8.3.0-winx64.msi

if exist "%INSTALLER%" (
    echo Démarrage de l'installation silencieuse...
    msiexec /i "%INSTALLER%" /qn
    echo Installation terminée.
) else (
    echo Fichier MSI non trouvé :
    echo %INSTALLER%
)

À lancer en administrateur.


Bonnes pratiques Git/Gitea

À versionner :

Excel/dev/Ratio_Cuisine_dev.xlsm
Excel/dev/Ratio_Restauration_dev.xlsm
Excel/dev/*_VERSION.txt
Scripts/*.bat
Scripts/*.py
Scripts/*.vbs
README.md

À ignorer ou éviter de versionner :

Excel/backup/
~$*.xlsm
*.tmp
*.bak

Selon la stratégie choisie, les fichiers de Excel/prod peuvent être versionnés ou non. Dans ce projet, ils servent de fichiers livrables générés par les scripts.


Exemple de .gitignore

# Fichiers temporaires Excel
~$*.xlsm
~$*.xlsx
*.tmp
*.bak

# Sauvegardes générées
Excel/backup/

# Cache Python
__pycache__/
*.pyc

# Environnements virtuels
.venv/
venv/

Checklist avant mise en production

Avant de lancer un script de mise en production :

  1. fermer le classeur Excel concerné ;
  2. vérifier quaucun fichier ~$Ratio_*.xlsm nest présent ;
  3. sauvegarder les modifications dans le fichier dev ;
  4. lancer le script .bat correspondant ;
  5. vérifier que la version est bien écrite dans le classeur prod ;
  6. faire un commit Git/Gitea.

Commandes utiles

Vérifier létat Git :

git status

Ajouter les modifications :

git add README_old.md Scripts/ Excel/dev/

Créer un commit :

git commit -m "Normalise versioning and prod deployment scripts"

Envoyer vers Gitea :

git push

Dépannage

Erreur : fichier utilisé par un autre processus

Cause probable : le classeur est encore ouvert dans Excel ou un fichier temporaire existe.

Solution :

taskkill /F /IM excel.exe

Puis vérifier que le fichier temporaire a disparu :

~$Ratio_Cuisine.xlsm
~$Ratio_Restauration.xlsm

Erreur dans set_cell_silent.vbs au moment de fermer Excel

Cause probable : Excel est resté en arrière-plan.

Solution : utiliser la version robuste de set_cell_silent.vbs, qui ferme explicitement le classeur et lapplication Excel après sauvegarde.


Auteur

Michel

Description
No description provided
Readme 647 MiB
Languages
Batchfile 43.5%
Python 24.7%
PowerShell 20.3%
VBScript 11.5%