Dashboard KPI Excel pour suivi d'activite freelance Fichiers inclus: - Documentation (README, PLAN, DATA_MODEL, FORMULAS) - Template Excel avec tables de donnees - Plan d'implementation pour agent - Configuration MCP VBA Server 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
14 KiB
Freelance Dashboard - Plan d'Implementation Agent
Vue d'Ensemble
Objectif: Creer un dashboard Excel KPI pour suivi d'activite freelance
Fichier cible: templates/FreelanceDashboard.xlsx
Outils: MCP VBA Server (vba-mcp-pro)
Pre-requis
Avant de commencer, verifier:
- MCP VBA Server est connecte et fonctionnel
- Microsoft Excel est installe sur la machine
- Le dossier
templates/existe
Phase 1: Preparation et Structure Fichier
Step 1.1: Creer le dossier templates
# Verifier/creer le dossier
mkdir templates
Verification: Le dossier templates/ existe
Step 1.2: Creer le fichier Excel vide avec les onglets
Action manuelle requise:
- Ouvrir Excel
- Creer un nouveau classeur
- Renommer les feuilles:
- Feuil1 → Dashboard
- Ajouter: Data_Clients
- Ajouter: Data_Temps
- Ajouter: Data_Revenus
- Ajouter: Config
- Sauvegarder comme
templates/FreelanceDashboard.xlsx
Alternative MCP: Utiliser open_in_office sur un fichier existant, mais la creation initiale est manuelle.
Verification:
list_tables(file_path="templates/FreelanceDashboard.xlsx")
Doit retourner les 5 onglets.
Phase 2: Creation des Tables de Donnees
Step 2.1: Peupler Data_Clients
Outil: set_worksheet_data
Donnees:
{
"file_path": "C:\\Users\\alexi\\Documents\\projects\\freelance-dashboard\\templates\\FreelanceDashboard.xlsx",
"sheet_name": "Data_Clients",
"data": [
["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"]
],
"start_cell": "A1"
}
Verification: get_worksheet_data sur Data_Clients doit retourner 6 lignes (header + 5 clients)
Step 2.2: Convertir en Excel Table (tbl_Clients)
Outil: create_table
Parametres:
{
"file_path": "...",
"sheet_name": "Data_Clients",
"range": "A1:D6",
"table_name": "tbl_Clients",
"has_headers": true,
"style": "TableStyleMedium2"
}
Verification: list_tables doit montrer tbl_Clients
Step 2.3: Peupler Data_Temps
Outil: set_worksheet_data
Donnees:
{
"sheet_name": "Data_Temps",
"data": [
["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"],
["06/01/2025", "CLI004", "Boutique", 5.0, "Setup"],
["07/01/2025", "CLI001", "Maintenance", 1.5, "Updates"],
["08/01/2025", "CLI003", "Campagne SEO", 3.0, "Keywords"],
["08/01/2025", "CLI005", "Dashboard", 4.5, "Design"],
["09/01/2025", "CLI002", "App Mobile", 6.5, "Screens"]
],
"start_cell": "A1"
}
Verification: 11 lignes (header + 10 entrees)
Step 2.4: Convertir en Excel Table (tbl_Temps)
Outil: create_table
Parametres:
{
"sheet_name": "Data_Temps",
"range": "A1:E11",
"table_name": "tbl_Temps",
"has_headers": true
}
Step 2.5: Peupler Data_Revenus
Outil: set_worksheet_data
Donnees:
{
"sheet_name": "Data_Revenus",
"data": [
["Date", "ClientID", "Montant", "Type"],
["15/01/2025", "CLI001", 2500, "Facture"],
["20/01/2025", "CLI002", 4200, "Facture"],
["25/01/2025", "CLI003", 1800, "Facture"],
["28/01/2025", "CLI001", 1000, "Acompte"],
["31/01/2025", "CLI004", 3500, "Facture"],
["05/02/2025", "CLI002", 2800, "Facture"],
["10/02/2025", "CLI005", 1500, "Acompte"]
],
"start_cell": "A1"
}
Step 2.6: Convertir en Excel Table (tbl_Revenus)
Outil: create_table
Parametres:
{
"sheet_name": "Data_Revenus",
"range": "A1:D8",
"table_name": "tbl_Revenus",
"has_headers": true
}
Step 2.7: Verification Phase 2
Action: list_tables sur le fichier
Resultat attendu:
- tbl_Clients (Data_Clients, 5 lignes)
- tbl_Temps (Data_Temps, 10 lignes)
- tbl_Revenus (Data_Revenus, 7 lignes)
Phase 3: Configuration
Step 3.1: Peupler Config
Outil: set_worksheet_data
Donnees:
{
"sheet_name": "Config",
"data": [
["Parametre", "Valeur", "", "Secteurs", "", "Types"],
["AnneeCourante", 2025, "", "Tech", "", "Facture"],
["TauxHoraireDefaut", 75, "", "Marketing", "", "Acompte"],
["DevisePrincipale", "EUR", "", "Finance", "", "Avoir"],
["ObjectifMensuel", 10000, "", "E-commerce", "", "Autre"],
["ObjectifHeures", 140, "", "Industrie", "", ""],
["JourDebutSemaine", 2, "", "Services", "", ""],
["", "", "", "Autre", "", ""]
],
"start_cell": "A1"
}
Note: Les colonnes D et F serviront de listes deroulantes pour la validation des donnees.
Phase 4: Formules KPIs sur Dashboard
Step 4.1: Structure du Dashboard - Labels
Outil: set_worksheet_data
Donnees (colonne A - labels):
{
"sheet_name": "Dashboard",
"data": [
["FREELANCE DASHBOARD"],
[""],
["KPIs Principaux"],
["CA Total"],
["CA Mois en cours"],
["Heures Totales"],
["Taux Horaire Moyen"],
["Nb Clients Actifs"],
["Heures Cette Semaine"],
[""],
["Top Client"],
[""],
["Periode"],
["Date Debut"],
["Date Fin"]
],
"start_cell": "A1"
}
Step 4.2: Formules KPIs - Valeurs
Outil: set_worksheet_data
Donnees (colonne B - formules):
{
"sheet_name": "Dashboard",
"data": [
[""],
[""],
[""],
["=SUM(tbl_Revenus[Montant])"],
["=SUMPRODUCT((MONTH(tbl_Revenus[Date])=MONTH(TODAY()))*(YEAR(tbl_Revenus[Date])=YEAR(TODAY()))*tbl_Revenus[Montant])"],
["=SUM(tbl_Temps[Heures])"],
["=IFERROR(B4/B6,0)"],
["=COUNTA(tbl_Clients[ClientID])"],
["=SUMIFS(tbl_Temps[Heures],tbl_Temps[Date],\">=\"&(TODAY()-WEEKDAY(TODAY(),2)+1),tbl_Temps[Date],\"<=\"&(TODAY()-WEEKDAY(TODAY(),2)+7))"],
[""],
["=IFERROR(INDEX(tbl_Clients[Nom],MATCH(MAX(SUMIFS(tbl_Revenus[Montant],tbl_Revenus[ClientID],tbl_Clients[ClientID])),SUMIFS(tbl_Revenus[Montant],tbl_Revenus[ClientID],tbl_Clients[ClientID]),0)),\"-\")"],
[""],
[""],
["=MIN(tbl_Temps[Date])"],
["=MAX(tbl_Temps[Date])"]
],
"start_cell": "B1"
}
Note: Certaines formules complexes comme Top Client peuvent necessiter validation. Si erreur, utiliser version simplifiee.
Step 4.3: Verification des formules
Outil: get_worksheet_data
Parametres:
{
"sheet_name": "Dashboard",
"range": "A1:B15"
}
Resultat attendu:
- B4 (CA Total) = 17300 (somme des montants)
- B6 (Heures Totales) = 43.5 (somme des heures)
- B7 (Taux Horaire) = ~397.70 (17300/43.5)
- B8 (Nb Clients) = 5
Phase 5: Tableaux Croises Dynamiques (MANUEL)
IMPORTANT: Cette phase ne peut PAS etre automatisee avec MCP VBA. Elle doit etre realisee manuellement dans Excel.
Step 5.1: TCD - CA par Client
Actions manuelles:
- Selectionner une cellule dans tbl_Revenus
- Insertion > Tableau croise dynamique
- Placer sur nouvelle feuille ou Dashboard
- Configuration:
- Lignes: ClientID
- Valeurs: Somme de Montant
- Renommer la feuille TCD si creee
Step 5.2: TCD - Heures par Mois
Configuration:
- Lignes: Date (grouper par mois)
- Valeurs: Somme de Heures
Step 5.3: TCD - CA par Mois
Configuration:
- Lignes: Date (grouper par mois)
- Valeurs: Somme de Montant
Phase 6: Graphiques (MANUEL)
IMPORTANT: Cette phase ne peut PAS etre automatisee avec MCP VBA.
Step 6.1: Graphique - Evolution CA Mensuel
Type: Histogramme ou Courbe Source: TCD CA par Mois Position: Dashboard, zone superieure gauche
Step 6.2: Graphique - Repartition par Client
Type: Camembert Source: TCD CA par Client Position: Dashboard, zone superieure droite
Step 6.3: Graphique - Heures par Semaine
Type: Histogramme Source: TCD Heures par Mois (ou semaine) Position: Dashboard, zone inferieure gauche
Step 6.4: Graphique - CA vs Heures
Type: Graphique combine (barres + ligne) Source: Donnees agregees Position: Dashboard, zone inferieure droite
Phase 7: Slicers et Filtres (MANUEL)
Step 7.1: Creer Slicer Client
- Selectionner un TCD
- Insertion > Segment
- Choisir ClientID
- Connecter aux autres TCD (clic droit > Connexions de rapport)
Step 7.2: Creer Slicer Periode
- Segment sur Date (annee/mois)
- Connecter aux TCD
Step 7.3: Positionner les Slicers
- Placer en haut a droite du Dashboard
- Redimensionner pour integration visuelle
Phase 8: Design et Mise en Forme (MANUEL)
Step 8.1: Palette Couleurs
| Element | Couleur | Hex |
|---|---|---|
| Titre/Headers | Bleu fonce | #2C3E50 |
| KPIs positifs | Vert | #27AE60 |
| Fond | Gris clair | #ECF0F1 |
| Alertes | Rouge | #E74C3C |
Step 8.2: Mise en forme des KPIs
- Police: Calibri 24-28pt Bold pour valeurs
- Format nombres:
# ##0 "€"pour montants - Format heures:
0.0 "h" - Format taux:
0.00 "€/h"
Step 8.3: Mise en forme conditionnelle
KPI CA vs Objectif:
- Vert si >= Config!ObjectifMensuel
- Orange si >= 80%
- Rouge si < 80%
Step 8.4: Layout Final
┌─────────────────────────────────────────────────────────┐
│ FREELANCE DASHBOARD [Slicers] │
├─────────────────────────────────────────────────────────┤
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ CA Total│ │CA Mois │ │ Heures │ │Taux Moy │ │
│ │ 17300€ │ │ 0€ │ │ 43.5h │ │ 398€/h │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────┤
│ [Graph CA Mensuel] [Graph Repartition] │
│ │
│ [Graph Heures/Semaine] [Graph CA vs Heures] │
└─────────────────────────────────────────────────────────┘
Phase 9: VBA Optionnel (Macro Refresh)
Step 9.1: Valider le code VBA
Outil: validate_vba_code
Code:
Sub RefreshDashboard()
Application.ScreenUpdating = False
Application.CalculateFull
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
Application.ScreenUpdating = True
MsgBox "Dashboard actualise!", vbInformation
End Sub
Step 9.2: Sauvegarder en .xlsm
Action manuelle:
- Fichier > Enregistrer sous > FreelanceDashboard.xlsm (format macro)
Step 9.3: Injecter le module VBA
Outil: inject_vba
Parametres:
{
"file_path": "...FreelanceDashboard.xlsm",
"module_name": "mod_Refresh",
"code": "..."
}
Step 9.4: Tester la macro
Outil: run_macro
Parametres:
{
"file_path": "...FreelanceDashboard.xlsm",
"macro_name": "RefreshDashboard"
}
Phase 10: Tests et Validation
Step 10.1: Verification des donnees
- tbl_Clients contient 5 clients
- tbl_Temps contient 10 entrees
- tbl_Revenus contient 7 entrees
Step 10.2: Verification des KPIs
| KPI | Valeur Attendue |
|---|---|
| CA Total | 17 300 € |
| Heures Totales | 43.5 h |
| Taux Horaire | ~397.70 €/h |
| Nb Clients | 5 |
Step 10.3: Tests fonctionnels
- Les formules se calculent correctement
- Les TCD se rafraichissent
- Les graphiques se mettent a jour
- Les slicers filtrent les donnees
- La macro fonctionne (si .xlsm)
Step 10.4: Ouvrir et verifier visuellement
Outil: open_in_office
{
"file_path": "...FreelanceDashboard.xlsx"
}
Resume des Actions par Type
Automatisables (MCP VBA)
| Step | Action | Outil MCP |
|---|---|---|
| 2.1 | Donnees Clients | set_worksheet_data |
| 2.2 | Table Clients | create_table |
| 2.3 | Donnees Temps | set_worksheet_data |
| 2.4 | Table Temps | create_table |
| 2.5 | Donnees Revenus | set_worksheet_data |
| 2.6 | Table Revenus | create_table |
| 3.1 | Config | set_worksheet_data |
| 4.1 | Labels Dashboard | set_worksheet_data |
| 4.2 | Formules KPIs | set_worksheet_data |
| 9.1 | Valider VBA | validate_vba_code |
| 9.3 | Injecter VBA | inject_vba |
| 9.4 | Tester macro | run_macro |
| 10.4 | Ouvrir Excel | open_in_office |
Manuelles (Excel UI)
| Step | Action |
|---|---|
| 1.2 | Creer fichier Excel + onglets |
| 5.x | Tableaux Croises Dynamiques |
| 6.x | Graphiques |
| 7.x | Slicers |
| 8.x | Design et mise en forme |
| 9.2 | Sauvegarder en .xlsm |
Ordre d'Execution Recommande
AUTOMATISE MANUEL AUTOMATISE
│ │ │
▼ ▼ ▼
[Phase 2-4] → [Phases 5-8] → [Phase 9-10]
Donnees TCD/Graphs VBA
Tables Slicers Tests
Formules Design
Workflow optimal:
- Agent execute Phases 2-4 (donnees + formules)
- Utilisateur complete Phases 5-8 dans Excel UI
- Agent execute Phase 9 (VBA optionnel)
- Agent execute Phase 10 (tests)
Notes Importantes
-
Chemin absolu obligatoire pour tous les outils MCP:
C:\Users\alexi\Documents\projects\freelance-dashboard\templates\FreelanceDashboard.xlsx -
Backup avant modifications: Utiliser
backup_vbaavant inject_vba -
Gestion des erreurs:
- Si formule echoue, verifier syntaxe (guillemets, virgules)
- Si table existe deja, ne pas recreer
-
Format dates: Les dates doivent etre au format
jj/mm/aaaapour Excel FR
Version: 1.0 Date: 2025-12-30 Auteur: Claude Agent