Workbook Info pour Excel | métadonnées via fonctions personnalisées
Contenu
- Qu'est-ce que Workbook Info pour Excel
- Fonctionnalités clés
- Pourquoi utiliser Workbook Info
- Instructions d'installation
- Instructions
- Référence des fonctions
- Historique des modifications
- Crédits
Qu'est-ce que Workbook Info pour Excel
Workbook Info pour Excel est un complément gratuit qui expose les métadonnées du classeur, de la feuille de calcul, du tableau, du graphique, du tableau croisé dynamique, du segment et des noms définis via des fonctions personnalisées en lecture seule et des types de données Entité Excel.
Les fonctions sont en lecture seule et conçues pour créer de la documentation vivante, des feuilles d'audit et des diagnostics de classeur directement dans la grille.
Fonctionnalités clés
- Fonctions personnalisées qui renvoient :
- Métadonnées du classeur (nom, auteur, date d'enregistrement, nombre d'interrogations, nombre de liens externes)
- Métadonnées de feuille de calcul (plage utilisée, lignes/colonnes utilisées, État de protection, couleur d'onglet, visibilité)
- Métadonnées d'objet pour les tableaux, graphiques, tableaux croisés dynamiques, segments et noms définis
- Fonctions INFO qui renvoient des valeurs Entité Excel
- Les propriétés Entité sont accessibles avec la notation pointée
(par exemple
=A1.usedRange) ou avecFIELDVALUE - Collections imbriquées sur les entités classeur et feuille de
calcul (par exemple
worksheets/worksheetCount,tables/tableCount) - Onglet Actions du volet Office : insérer une feuille démo / table des matières et recalculer le classeur
Pourquoi utiliser Workbook Info pour Excel
- Documenter rapidement la structure interne d'un classeur directement dans la grille avec des fonctions, sans VBA ni Office Scripts
- Créer des feuilles d'audit pilotées par formule qui restent à jour lorsque la structure du classeur évolue
- Utiliser une interface de métadonnées cohérente dans Excel pour bureau et Excel pour le web
Exemple :
=JKP.WORKBOOKINFO()
Instructions d'installation
Excel pour le web et Teams
Installer Workbook Info (Teams, Excel Web) maintenant
Un nouveau classeur Excel s’ouvrira dans votre navigateur avec ces informations :

Cliquez sur le bouton « Accept and Continue » dans le volet des tâches pour utiliser le complément. Après cela, Workbook Info sera également disponible dans Excel dans Teams.
Installation manuelle
Si le bouton ne fonctionne pas, ouvrez un classeur Excel dans votre navigateur et cliquez sur le bouton Compléments. Ensuite, recherchez Workbook Info :

Cliquez sur Ajouter pour installer le complément dans Excel pour le web.
Excel de bureau
Installer Workbook Info (Excel de bureau) maintenant
Après avoir cliqué sur ce bouton, votre navigateur demandera l’autorisation d’ouvrir Excel. Cliquez sur Ouvrir et Excel démarrera et affichera ceci :

Cliquez sur le bouton « Accept and Continue » dans le volet des tâches
pour utiliser le complément.
Installation manuelle
Si le bouton ci-dessus ne fonctionne pas, vous pouvez également installer l’outil en ouvrant Excel et en cliquant sur Compléments (dans l’onglet Accueil). Ensuite, recherchez « Workbook Info » :

Pour ajouter Workbook Info à Excel, cliquez sur le bouton Ajouter.
Instructions
Ouvrez le volet Office du complément pour obtenir la liste des fonctions et leurs explications en cliquant sur l'onglet Formules, bouton Workbook Info :
Volet Office
Cliquer sur ce bouton ouvre le volet Office. Il comporte trois onglets :
Onglet Référence

Cet onglet affiche la référence des fonctions. Cliquez sur une fonction
pour afficher une fiche affichant des informations sur la fonction.
Onglet Actions

L'onglet Actions permet actuellement deux choses :
- Insérer une feuille de démonstration qui peut servir de début de table des matières :
- Un bouton qui force le recalcul de toutes les formules, ce qui met à jour les noms d'objets mis en cache renvoyés par les fonctions.
Onglet Paramètres
L'onglet Paramètres contient un sélecteur de langue avec l'option Automatique. Automatique suit la langue de l'application Excel pour l'interface du volet Office. Ce sélecteur ne change pas les noms de fonction ni la langue des descriptions de fonctions, et la langue du ruban est contrôlée par la langue de l'application Excel.
Comment utiliser les fonctions
Toutes les fonctions de ce complément commencent par le préfixe JKP. Saisissez simplement =JKP. dans une cellule et la liste d'auto-complétion les affichera. Le complément comporte deux groupes de fonctions : fonctions classiques et fonctions de type de données fonctions.
Fonctions classiques
Toutes les fonctions de ce complément commencent par le préfixe JKP. Saisissez simplement =JKP. dans une cellule et la liste d'auto-complétion les affichera. Le complément comporte deux groupes de fonctions : fonctions classiques et fonctions de type de données fonctions. Les fonctions classiques acceptent souvent un argument. Les paramètres de sélection de feuille de calcul acceptent un nom de feuille ou un index basé sur 1. Si omis, les fonctions utilisent la feuille de calcul contenant la formule.
Fonctions de type de données (fonctions INFO)
Les fonctions se terminant par INFO renvoient des types de données, ce qui facilite la récupération d'informations détaillées relatives au type de données concerné. Voici une capture d'écran du résultat de la fonction =JKP.WORKBOOKINFO() dans une cellule :

Cliquer sur la petite icône dans la cellule ouvre une fiche.
Dans la fiche, des boutons peuvent apparaître à côté des éléments, ce qui permet d'insérer ces informations dans la grille :

Vous pouvez également récupérer des informations d'une cellule de type de données en faisant référence à cette cellule dans une formule puis en saisissant un point :

Les fonctions prennent en charge les tableaux dynamiques. Certaines fonctions renvoient un tableau d'éléments (par exemple JKP.WORKSHEETS). Vous pouvez faire pointer les fonctions suivantes vers ce tableau, et Excel l'interprétera correctement.
Notez que ces fonctions ne sont PAS volatiles.
Si les données du classeur changent, elles ne se mettent pas automatiquement
à jour. Pour forcer une actualisation, appuyez sur Ctrl+Alt+Maj+F9 (ou
utilisez l'onglet Actions du volet Office et cliquez
sur Recalculer). Sinon, effectuez un rechercher/remplacer
dans tout le classeur (par exemple, remplacez JKP. par
JKP.).
Référence des fonctions
Les fonctions sont regroupées par catégorie. Chaque tableau répertorie la fonction, la description, la syntaxe, les paramètres et le comportement des erreurs. Pour les fonctions INFO, la description inclut les propriétés Entité disponibles.
Fonctions du classeur
JKP.WORKBOOKworksheetCount,
tableCount, chartCount,
pivotTableCount, slicerCount,
nameCount, queryCount,
et externalLinkCount.JKP.WORKBOOK()JKP.WORKBOOKINFOPropriétés Entité:
name,
author, lastSavedBy,
lastSaveTime, creationDate,
worksheetCount, worksheets,
tableCount, tables,
pivotTableCount, pivotTables,
slicerCount, slicers,
chartCount, charts,
nameCount, names,
queryCount, queries (queries[*]
contient name, error,
refreshDate, rowsLoadedCount,
loadedTo, loadedToDataModel),
externalLinkCount, externalLinks
(externalLinks[*] contient id
(URL))JKP.WORKBOOKINFO()Fonctions de feuille de calcul
JKP.WORKSHEETSJKP.WORKSHEETS()JKP.WORKSHEETJKP.WORKSHEET([nameOrIndex])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.OFFSETSHEETJKP.OFFSETSHEET(offset)- #NUM!: Hors limites
- #VALUE!: Type d'argument incorrect
JKP.USEDRANGEJKP.USEDRANGE([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.USEDROWSJKP.USEDROWS([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.USEDCOLUMNSJKP.USEDCOLUMNS([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.PROTECTEDJKP.PROTECTED([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.WORKSHEETINFOPropriétés Entité:
name,
usedRange, usedRows,
usedColumns, protected,
tabColor, visibility,
tableCount, tables,
chartCount, charts,
pivotTableCount, pivotTables,
slicerCount, slicers,
nameCount, namesJKP.WORKSHEETINFO([nameOrIndex])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
Fonctions de tableau
JKP.TABLES#N/A! lorsqu'il n'y a aucun
élément correspondant pour le parent demandé (par
exemple, aucun tableau on cette feuille).JKP.TABLES([feuille])- #N/A: L'élément nommé n'existe pas
- #N/A!: Aucun élément trouvé pour le parent demandé (par exemple, aucun tableau sur cette feuille)
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.TABLEROWSJKP.TABLEROWS(tableName)- #N/A: Le tableau n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.TABLECOLUMNSJKP.TABLECOLUMNS(tableName)- #N/A: Le tableau n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.TABLEADDRESSJKP.TABLEADDRESS(tableName)- #N/A: Le tableau n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.TABLECOMMENTJKP.TABLECOMMENT(tableName)- #N/A: Le tableau n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.TABLEINFOPropriétés Entité:
name,
worksheet, rowCount,
columnCount, address,
commentJKP.TABLEINFO(tableName)- #N/A: Le tableau n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.TABLESINFOPropriétés Entité:
name,
worksheet, rowCount,
columnCount, address,
comment (une entité par ligne du résultat
en débordement)JKP.TABLESINFO([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
Fonctions de graphique
JKP.CHARTSFeuille::ChartName. Renvoie
#N/A! lorsqu'il n'existe aucun éléments
pour le parent demandé (par exemple, aucun graphique
sur cette feuille).JKP.CHARTS([feuille])- #N/A: L'élément nommé n'existe pas
- #N/A!: Aucun élément trouvé pour le parent demandé (par exemple, aucun graphique sur cette feuille)
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.CHARTTYPEJKP.CHARTTYPE(chartName)- #N/A: Le graphique n'existe pas
- #VALUE!: Nom de graphique ambigu ; plus d' un graphique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.CHARTTITLEJKP.CHARTTITLE(chartName)- #N/A: Le graphique n'existe pas
- #VALUE!: Nom de graphique ambigu ; plus d' un graphique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.SERIESCOUNTJKP.SERIESCOUNT(chartName)- #N/A: Le graphique n'existe pas
- #VALUE!: Nom de graphique ambigu ; plus d' un graphique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.CHARTINFOPropriétés Entité:
chartId,
name, worksheet,
chartType, title, seriesCount,
topLeftCellJKP.CHARTINFO(chartName)- #N/A: Le graphique n'existe pas
- #VALUE!: Nom de graphique ambigu ; plus d' un graphique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.CHARTSINFOPropriétés Entité:
chartId,
name, worksheet,
chartType, title, seriesCount,
topLeftCell (une entité par ligne du
résultat en débordement)JKP.CHARTSINFO([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
Fonctions de tableau croisé dynamique
JKP.PIVOTTABLESFeuille::PivotName.
Renvoie #N/A! lorsqu'il n'existe aucun
élément correspondant pour le parent demandé (par
exemple, aucun tableau croisé dynamique sur cette
feuille).JKP.PIVOTTABLES([feuille])- #N/A: L'élément nommé n'existe pas
- #N/A!: Aucun élément trouvé pour le parent demandé (par exemple, aucun tableau croisé dynamique sur cette feuille)
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.PIVOTLOCATIONJKP.PIVOTLOCATION(pivot)Feuille::PivotName;
accepte aussi un nom de TCD unique ou une plage
en débordement d'identifiants de TCD).- #N/A: Le tableau croisé dynamique n'existe pas
- #VALUE!: Nom de tableau croisé dynamique ambigu ; plus d' un tableau croisé dynamique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.PIVOTSOURCEJKP.PIVOTSOURCE(pivot)Feuille::PivotName;
accepte aussi un nom de TCD unique ou une plage
en débordement d'identifiants de TCD).- #N/A: Le tableau croisé dynamique n'existe pas
- #VALUE!: Nom de tableau croisé dynamique ambigu ; plus d' un tableau croisé dynamique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.PIVOTSOURCETYPELocalRange, LocalTable,
ou Inconnu.JKP.PIVOTSOURCETYPE(pivot)Feuille::PivotName;
accepte aussi un nom de TCD unique ou une plage
en débordement d'identifiants de TCD).- #N/A: Le tableau croisé dynamique n'existe pas
- #VALUE!: Nom de tableau croisé dynamique ambigu ; plus d' un tableau croisé dynamique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.PIVOTINFOPropriétés Entité:
pivotId,
name, worksheet,
id, locationAddress, filterAxisAddress,
rowLabelsAddress, columnLabelsAddress,
dataBodyAddress, sourceType,
source, allowMultipleFiltersPerField,
enableDataValueEditing, refreshOnOpen,
useCustomSortLists, layoutType,
showRowGrandTotals, showColumnGrandTotals,
showFieldHeaders, preserveFormatting,
subtotalLocationJKP.PIVOTINFO(pivot)Feuille::PivotName;
accepte aussi un nom de TCD unique ou une plage
en débordement d'identifiants de TCD).- #N/A: Le tableau croisé dynamique n'existe pas
- #VALUE!: Nom de tableau croisé dynamique ambigu ; plus d' un tableau croisé dynamique porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.PIVOTSINFOPropriétés Entité:
pivotId,
name, worksheet,
locationAddress, sourceType,
source (une entité par ligne du résultat
en débordement)JKP.PIVOTSINFO([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
Fonctions de segment
JKP.SLICERSFeuille::SlicerName. Renvoie
#N/A! lorsqu'il n'y a aucun élément correspondant
pour le parent demandé (par exemple, aucun segment
sur cette feuille).JKP.SLICERS([feuille])- #N/A: L'élément nommé n'existe pas
- #N/A!: Aucun élément trouvé pour le parent demandé (par exemple, aucun segment sur cette feuille)
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
JKP.SLICERITEMSJKP.SLICERITEMS(slicer)Feuille::SlicerName;
accepte aussi un nom de segment unique ou une plage
en débordement d'identifiants de segment).- #N/A: Le segment n'existe pas
- #VALUE!: Nom de segment ambigu ; plus d' un segment porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.SLICERINFOitems (lorsqu'elle est disponible)
est une collection de entités ITEMINFO
(chaque élément possède name et
selected ; selected peut
être vide pour certains types/hôtes de segments
où l'état de sélection n'est pas disponible).Propriétés Entité:
slicerId,
name, worksheet,
id, caption, topLeftCell,
left, top, width,
height, style, sortBy,
isFilterCleared, itemCount,
items (items[*] est
ITEMINFO avec name,
selected)JKP.SLICERINFO(slicer)Feuille::SlicerName;
accepte aussi un nom de segment unique ou une plage
en débordement d'identifiants de segment).- #N/A: Le segment n'existe pas
- #VALUE!: Nom de segment ambigu ; plus d' un segment porte le même nom
- #VALUE!: Type d'argument incorrect
JKP.SLICERSINFOitems/itemCount.
Appelez JKP.SLICERINFO() (ou
JKP.SLICERITEMS()) lorsque vous avez besoin
des éléments de segment.Propriétés Entité:
slicerId,
name, worksheet,
caption, style, isFilterCleared,
topLeftCell (une entité par ligne du
résultat en débordement)JKP.SLICERSINFO([feuille])- #N/A: L'élément nommé n'existe pas
- #NUM!: Index hors limites
- #VALUE!: Type d'argument incorrect
Fonctions de noms
JKP.NAMES#N/A! lorsqu'il n'y a aucun élément
correspondant pour le parent demandé (par exemple,
aucun nom dans cette portée).JKP.NAMES([scopeOrSheet])- #N/A: La feuille n'existe pas
- #N/A!: Aucun élément trouvé pour le parent demandé (par exemple, aucun nom dans cette portée)
- #VALUE!: Type d'argument incorrect
JKP.NAMEREFERSJKP.NAMEREFERS(name)- #N/A: Le nom n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.NAMETYPEJKP.NAMETYPE(name)- #N/A: Le nom n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.NAMEVISIBLEJKP.NAMEVISIBLE(name)- #N/A: Le nom n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.NAMECOMMENTJKP.NAMECOMMENT(name)- #N/A: Le nom n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.NAMEINFOPropriétés Entité:
name,
formula, value,
type, visible, comment,
scope, sheetJKP.NAMEINFO(name)- #N/A: Le nom n'existe pas
- #VALUE!: Type d'argument incorrect
JKP.NAMESINFOPropriétés Entité:
name,
formula, value,
type, visible, comment,
scope, sheet (une entité
par ligne du résultat en débordement)JKP.NAMESINFO([scopeOrSheet])- #N/A: La feuille n'existe pas
- #VALUE!: Type d'argument incorrect
Historique des modifications
- Build 1.0.0.0, 2026-04-27 : Première version
Crédits
Workbook Info est développé par Jan Karel Pieterse (JKP Application Development Services).
Merci aux utilisateurs et testeurs qui ont fourni des retours sur les formules, le comportement des entités et l'expérience utilisateur du volet Office.

Commentaires