freelance-dashboard/plans/implemPlan.md
StillHammer 21ebf32e4f Dashboard avec graphiques, TCD, slicers et checkboxes fonctionnels
- 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>
2026-01-21 17:05:25 +07:00

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:

  1. Ouvrir Excel
  2. Creer un nouveau classeur
  3. Renommer les feuilles:
    • Feuil1 → Dashboard
    • Ajouter: Data_Clients
    • Ajouter: Data_Temps
    • Ajouter: Data_Revenus
    • Ajouter: Config
  4. 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:

  1. Selectionner une cellule dans tbl_Revenus
  2. Insertion > Tableau croise dynamique
  3. Placer sur nouvelle feuille ou Dashboard
  4. Configuration:
    • Lignes: ClientID
    • Valeurs: Somme de Montant
  5. 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

  1. Selectionner un TCD
  2. Insertion > Segment
  3. Choisir ClientID
  4. Connecter aux autres TCD (clic droit > Connexions de rapport)

Step 7.2: Creer Slicer Periode

  1. Segment sur Date (annee/mois)
  2. 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:

  1. Agent execute Phases 2-4 (donnees + formules)
  2. Utilisateur complete Phases 5-8 dans Excel UI
  3. Agent execute Phase 9 (VBA optionnel)
  4. Agent execute Phase 10 (tests)

Notes Importantes

  1. Chemin absolu obligatoire pour tous les outils MCP: C:\Users\alexi\Documents\projects\freelance-dashboard\templates\FreelanceDashboard.xlsx

  2. Backup avant modifications: Utiliser backup_vba avant inject_vba

  3. Gestion des erreurs:

    • Si formule echoue, verifier syntaxe (guillemets, virgules)
    • Si table existe deja, ne pas recreer
  4. Format dates: Les dates doivent etre au format jj/mm/aaaa pour Excel FR


Version: 1.0 Date: 2025-12-30 Auteur: Claude Agent