J'ai un grand classeur et je veux une feuille de calcul principale qui calcule les champs de toutes les feuilles de calcul. Je sais que je peux simplement sélectionner une cellule dans une feuille de calcul en nommant explicitement la feuille de calcul, puis la ligne qui m'intéresse. Cependant, existe-t-il un moyen de sélectionner récursivement une cellule afin que, lorsque j'ajoute plusieurs feuilles de calcul, elles soient automatiquement inclus dans le champ calculé dans la feuille de calcul principale?
microsoft-excel
recursion
Walter Cecil Worsley IV
la source
la source
Réponses:
Une solution consiste à utiliser une fonction VBA que vous pouvez appeler dans une formule. La fonction ci-dessous renvoie le contenu d'une adresse de cellule (cela ne fonctionnera pas pour les plages dans sa forme actuelle) dans toutes les feuilles de calcul autres que la feuille active.
Pour utiliser ce code, appuyez sur Alt + F11 Dans Excel, insérez un nouveau module et collez le code.
Donc, si, par exemple, vous voulez additionner les valeurs de
B2
de chaque feuille autre que la feuille active, vous utiliseriez la formule matricielle suivante (entrée en appuyant sur Ctrl + Décalage + Entrer ):Pour inclure la valeur de
B2
sur la feuille active, utilisez la formule suivante:Pour ne résumer que les valeurs de
B2
sur les feuilles qui incluent "Mensuel" dans le nom de la feuille (sans inclure la feuille active), utilisez la formule suivante:Notez deux choses:
AcrossSheets
retourne un tableau de valeurs. Pour cette raison, il ne devrait être utilisé que dans les formules matricielles.AcrossSheets
contient des valeurs sous forme de chaînes (texte). Si vous vous attendez à ce que la fonction retourne des données numériques (comme dans les exemples ci-dessus), vous devez envelopper l'appel de fonctionVALUE()
. Cela convertira les données de chaîne en données numériques.la source