Exceller

Liste des noms de feuilles avec une formule

List Sheet Names With Formula

Formule Excel: liste des noms de feuilles avec une formuleFormule générique
=GET.WORKBOOK(1)& T ( NOW ())
Résumé

Pour répertorier les feuilles de calcul dans un classeur Excel, vous pouvez utiliser une approche en 2 étapes: (1) définir un plage nommée appelé 'sheetnames' avec une ancienne macro-commande et (2) utilisez le Fonction INDEX pour récupérer les noms de feuilles à l'aide de la plage nommée. Dans l'exemple illustré, la formule en B5 est:

 
= INDEX ( MID (sheetnames, FIND (']',sheetnames)+1,255), ROWS ($B:B5))

Remarque: j'ai rencontré cette formule sur le babillard MrExcel dans un message de T. Valko .



quelle est la référence de cellule absolue dans Excel
Explication

Le plage nommée 'sheetnames' est créé avec ce code:



 
=GET.WORKBOOK(1)& T ( NOW ())

GET.WORKBOOK est une macro-commande qui récupère un tableau de noms de feuille dans le classeur actuel. Le tableau résultant ressemble à ceci:

 
{'[workbook.xlsm]Sheet1','[workbook.xlsm]Sheet2','[workbook.xlsm]Sheet3','[workbook.xlsm]Sheet4','[workbook.xlsm]Sheet5'}

Une expression cryptique est concaténée au résultat:



 
& T ( NOW ())

Le but de ce code est de forcer le recalcul pour prendre en compte les modifications apportées aux noms de feuille. Parce que MAINTENANT est un fonction volatile , il recalcule à chaque changement de feuille de calcul. La fonction NOW renvoie une valeur numérique représentant la date et l'heure. La fonction T renvoie un chaîne vide ('') pour les valeurs numériques, la concaténation n'a donc aucun effet sur les valeurs.

Excel formule pour calculer la différence en pourcentage entre deux nombres

De retour sur la feuille de calcul, la cellule B6 contient cette formule copiée:

 
= INDEX ( MID (sheetnames, FIND (']',sheetnames)+1,255), ROWS ($B:B5))

Travaillant de l'intérieur vers l'extérieur, le La fonction MID est utilisée pour supprimer les noms de feuille de calcul . Le tableau résultant ressemble à ceci:



 
{'Sheet1','Sheet2','Sheet3','Sheet4','Sheet5'}

Cela entre dans la fonction INDEX en tant que «tableau». La fonction ROW utilise une plage en expansion pour générer un numéro de ligne incrémenté. À chaque nouvelle ligne, INDEX renvoie la valeur suivante du tableau. Lorsqu'il n'y a plus de noms de feuille à sortir, la formule renvoie une erreur #REF.

Remarque: comme cette formule repose sur une macro-commande, vous devrez enregistrer en tant que classeur prenant en charge les macros si vous souhaitez que la formule continue de mettre à jour les noms de feuille après la fermeture et la réouverture du fichier. Si vous enregistrez en tant que feuille de calcul normale, le code du nom de la feuille sera supprimé.

Auteur Dave Bruns


^