- KPIs complets (CA, Heures, Taux, Stats, Objectifs) - Graphiques CA par client + Heures par client - TCD Heures x Client x Projet avec Slicer interactif - Checkboxes dynamiques bien positionnes (E3:E7) - Documentation technique et guides MCP Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
264 lines
7.0 KiB
Markdown
264 lines
7.0 KiB
Markdown
# Freelance Dashboard - Instructions pour Claude
|
|
|
|
## Projet
|
|
|
|
Freelance Dashboard - Dashboard KPI Excel pour suivi d'activite freelance.
|
|
|
|
## Status: En attente de developpement
|
|
|
|
## MCP VBA Server
|
|
|
|
Ce projet utilise **VBA MCP Server v0.6.0+** pour l'automatisation.
|
|
|
|
### Outils Disponibles pour Excel
|
|
|
|
| Outil | Description | Usage |
|
|
|-------|-------------|-------|
|
|
| `get_worksheet_data` | Lit donnees d'une feuille | Lecture donnees |
|
|
| `set_worksheet_data` | Ecrit donnees/formules | Peupler tables, KPIs |
|
|
| `list_excel_tables` | Liste les Excel Tables | Verifier structure |
|
|
| `create_excel_table` | Cree table structuree | Tables donnees |
|
|
| `insert_rows` | Insere lignes | Ajouter entrees |
|
|
| `delete_rows` | Supprime lignes | Nettoyer donnees |
|
|
| `insert_columns` | Insere colonnes | Modifier structure |
|
|
| `delete_columns` | Supprime colonnes | Modifier structure |
|
|
| `inject_vba` | Injecte module VBA | Macro refresh |
|
|
| `validate_vba` | Valide syntaxe VBA | Verifier code |
|
|
| `run_macro` | Execute macro VBA | Lancer refresh |
|
|
| `open_in_office` | Ouvre Excel visible | Voir resultat |
|
|
| `create_backup` | Cree backup fichier | Avant modifications |
|
|
|
|
### Chemin du fichier
|
|
|
|
```
|
|
C:\Users\alexi\Documents\projects\freelance-dashboard\templates\FreelanceDashboard.xlsx
|
|
```
|
|
|
|
---
|
|
|
|
## Structure du Projet
|
|
|
|
```
|
|
freelance-dashboard/
|
|
├── README.md # Documentation principale
|
|
├── PLAN.md # Plan projet (7 phases, 9h)
|
|
├── DATA_MODEL.md # Schema des 3 tables
|
|
├── FORMULAS.md # Toutes les formules Excel
|
|
├── CLAUDE.md # CE FICHIER
|
|
├── docs/
|
|
│ └── MCP_VBA_GUIDE.md # Guide utilisation MCP
|
|
├── templates/
|
|
│ └── FreelanceDashboard.xlsx
|
|
└── scripts/
|
|
```
|
|
|
|
---
|
|
|
|
## Workflow de Developpement
|
|
|
|
### Phase 1: Structure Fichier (MCP VBA)
|
|
|
|
```python
|
|
# Creer les donnees clients
|
|
data_clients = [
|
|
["ClientID", "Nom", "Secteur", "DateDebut"],
|
|
["CLI001", "Acme Corporation", "Tech", "15/01/2024"],
|
|
["CLI002", "Tech Solutions", "Tech", "01/03/2024"],
|
|
["CLI003", "Marketing Pro", "Marketing", "10/06/2024"],
|
|
["CLI004", "E-Shop Plus", "E-commerce", "22/09/2024"],
|
|
["CLI005", "Finance Group", "Finance", "05/11/2024"],
|
|
]
|
|
set_worksheet_data("templates/FreelanceDashboard.xlsx", "Data_Clients", data_clients)
|
|
|
|
# Creer la table structuree
|
|
create_excel_table("templates/FreelanceDashboard.xlsx", "Data_Clients", "A1:D6", "tbl_Clients", has_headers=True)
|
|
```
|
|
|
|
```python
|
|
# Creer les donnees temps
|
|
data_temps = [
|
|
["Date", "ClientID", "Projet", "Heures", "Description"],
|
|
["02/01/2025", "CLI001", "Site Web", 3.5, "Maquettes"],
|
|
["02/01/2025", "CLI002", "API Backend", 6.0, "Endpoints"],
|
|
["03/01/2025", "CLI001", "Site Web", 4.0, "Integration"],
|
|
["03/01/2025", "CLI003", "Campagne SEO", 2.5, "Audit"],
|
|
["06/01/2025", "CLI002", "API Backend", 7.0, "Tests"],
|
|
# ... plus de donnees
|
|
]
|
|
set_worksheet_data("templates/FreelanceDashboard.xlsx", "Data_Temps", data_temps)
|
|
create_excel_table("templates/FreelanceDashboard.xlsx", "Data_Temps", "A1:E11", "tbl_Temps", has_headers=True)
|
|
```
|
|
|
|
```python
|
|
# Creer les donnees revenus
|
|
data_revenus = [
|
|
["Date", "ClientID", "Montant", "Type"],
|
|
["15/01/2025", "CLI001", 2500, "Facture"],
|
|
["20/01/2025", "CLI002", 4200, "Facture"],
|
|
["25/01/2025", "CLI003", 1800, "Facture"],
|
|
# ... plus de donnees
|
|
]
|
|
set_worksheet_data("templates/FreelanceDashboard.xlsx", "Data_Revenus", data_revenus)
|
|
create_excel_table("templates/FreelanceDashboard.xlsx", "Data_Revenus", "A1:D8", "tbl_Revenus", has_headers=True)
|
|
```
|
|
|
|
### Phase 2: Formules KPIs (MCP VBA)
|
|
|
|
```python
|
|
# Ecrire les KPIs sur l'onglet Dashboard
|
|
kpis = [
|
|
["CA Total", "=SUM(tbl_Revenus[Montant])"],
|
|
["Heures Totales", "=SUM(tbl_Temps[Heures])"],
|
|
["Taux Horaire Moyen", "=B1/B2"],
|
|
["Nb Clients", "=COUNTA(tbl_Clients[ClientID])"],
|
|
["Heures Semaine", "=SUMIFS(tbl_Temps[Heures],tbl_Temps[Date],\">=\"&TODAY()-WEEKDAY(TODAY(),2)+1)"],
|
|
]
|
|
set_worksheet_data("templates/FreelanceDashboard.xlsx", "Dashboard", kpis, start_cell="A1")
|
|
```
|
|
|
|
### Phase 3-5: TCD, Graphiques, Design (Excel UI)
|
|
|
|
Ces elements doivent etre crees dans Excel UI:
|
|
- Tableaux Croises Dynamiques
|
|
- Graphiques (barres, camembert, combo)
|
|
- Slicers
|
|
- Mise en forme conditionnelle
|
|
- Layout final
|
|
|
|
### Phase 6: VBA Refresh (MCP VBA - Optionnel)
|
|
|
|
```python
|
|
code = '''
|
|
Sub RefreshDashboard()
|
|
Application.CalculateFull
|
|
Dim ws As Worksheet
|
|
For Each ws In ThisWorkbook.Worksheets
|
|
Dim pt As PivotTable
|
|
For Each pt In ws.PivotTables
|
|
pt.RefreshTable
|
|
Next pt
|
|
Next ws
|
|
MsgBox "Dashboard actualise!", vbInformation
|
|
End Sub
|
|
'''
|
|
validate_vba(code, file_type="excel")
|
|
inject_vba("templates/FreelanceDashboard.xlsm", "mod_Refresh", code)
|
|
```
|
|
|
|
---
|
|
|
|
## Commandes Rapides
|
|
|
|
### Lire donnees
|
|
|
|
```python
|
|
get_worksheet_data("templates/FreelanceDashboard.xlsx", "Data_Clients")
|
|
get_worksheet_data("templates/FreelanceDashboard.xlsx", "Data_Temps")
|
|
```
|
|
|
|
### Ajouter entree temps
|
|
|
|
```python
|
|
# Ajouter une ligne
|
|
insert_rows("templates/FreelanceDashboard.xlsx", "Data_Temps", position=12, count=1)
|
|
set_worksheet_data("templates/FreelanceDashboard.xlsx", "Data_Temps",
|
|
[["10/01/2025", "CLI001", "Nouveau Projet", 2.5, "Description"]],
|
|
start_cell="A12")
|
|
```
|
|
|
|
### Lister les tables
|
|
|
|
```python
|
|
list_excel_tables("templates/FreelanceDashboard.xlsx")
|
|
```
|
|
|
|
### Ouvrir pour voir
|
|
|
|
```python
|
|
open_in_office("templates/FreelanceDashboard.xlsx")
|
|
```
|
|
|
|
### Executer macro
|
|
|
|
```python
|
|
run_macro("templates/FreelanceDashboard.xlsm", "RefreshDashboard")
|
|
```
|
|
|
|
---
|
|
|
|
## Limitations MCP VBA
|
|
|
|
| Ce qui marche | Ce qui ne marche pas |
|
|
|---------------|---------------------|
|
|
| Ecrire donnees | Creer TCD |
|
|
| Creer Excel Tables | Creer graphiques |
|
|
| Ecrire formules | Design visuel |
|
|
| Injecter VBA | Creer slicers |
|
|
| Executer macros | Mise en forme conditionnelle |
|
|
|
|
---
|
|
|
|
## Lien avec TimeTrack Pro
|
|
|
|
```
|
|
TimeTrack Pro (Access) Freelance Dashboard (Excel)
|
|
│ │
|
|
│ get_worksheet_data │
|
|
└──────────────────────────►│
|
|
Export donnees
|
|
```
|
|
|
|
### Export manuel
|
|
|
|
1. Lire donnees Access: `get_worksheet_data("TimeTrackPro.accdb", "tbl_Temps")`
|
|
2. Ecrire dans Excel: `set_worksheet_data("FreelanceDashboard.xlsx", "Data_Temps", data)`
|
|
|
|
### Macro d'import (V2)
|
|
|
|
```vba
|
|
Sub ImportFromTimeTrack()
|
|
' Connexion ADODB vers TimeTrackPro.accdb
|
|
' Import automatique des donnees
|
|
End Sub
|
|
```
|
|
|
|
---
|
|
|
|
## Fichiers Cles
|
|
|
|
| Fichier | Quand l'utiliser |
|
|
|---------|------------------|
|
|
| `DATA_MODEL.md` | Schema tables + donnees demo |
|
|
| `FORMULAS.md` | Toutes les formules KPIs |
|
|
| `PLAN.md` | Layout, couleurs, phases |
|
|
| `docs/MCP_VBA_GUIDE.md` | Guide etape par etape |
|
|
|
|
---
|
|
|
|
## Design
|
|
|
|
### Palette Couleurs
|
|
|
|
| Usage | Hex |
|
|
|-------|-----|
|
|
| Primaire (bleu fonce) | #2C3E50 |
|
|
| Accent (vert) | #27AE60 |
|
|
| Neutre (gris) | #ECF0F1 |
|
|
| Alerte (rouge) | #E74C3C |
|
|
|
|
### KPIs a afficher
|
|
|
|
- CA Total
|
|
- CA Mois en cours
|
|
- Heures totales
|
|
- Taux horaire moyen
|
|
- Nb clients actifs
|
|
- Top client
|
|
- Heures semaine
|
|
|
|
---
|
|
|
|
## Contact
|
|
|
|
Alexis Trouve - alexistrouve.pro@gmail.com
|