Dans Excel 2003, je posais une question sur le comptage d'une chaîne de texte Man dans les feuilles nommées 001R à 900R, dans la même cellule C8 de toutes les feuilles.
J'ai la réponse suivante
=SUMPRODUCT(COUNTIF(INDIRECT("'"&ROW(INDIRECT(001&":"&900))&"R"&"'!C8"),"*Man*"))
Cela fonctionne parfaitement lorsque les feuilles sont toutes présentes. Mais lorsque vous utilisez la formule ci-dessus alors que toutes les feuilles ne sont pas encore présentes, cela donne une erreur, car j'ai des noms de feuille de calcul comme
001R
002R
003S
004R
101R
102S
103R
210R
211R
305R
306S
307R
401R
402R
403S
404R
et ainsi de suite pour environ 300 feuilles. Les numéros de feuilles manquants seront ajoutés ultérieurement, au fur et à mesure de la disponibilité des données.
Existe-t-il un moyen d'utiliser une formule qui englobe tous les nombres pour inclure les noms de feuille actuels et futurs possibles, afin d'éviter de modifier la formule à chaque fois qu'une nouvelle feuille est ajoutée?
@ Gary's Student a une réponse très utile. Mais je veux compter le texte dans une liste déroulante avec de nombreux éléments, et je veux compter l'occurrence de chacun. Avec votre technique, devrais-je créer un module UDF pour chaque article; ou y at-il un moyen de faire cela.
De plus, j'ai des feuilles avec S non R attachées à leur numéro. Y a-t-il un moyen de les compter aussi? Je veux dire est-il un moyen de faire
shName = Format(i, "000") & "R"
et
If InStr(1, cel, "Man") as variables entered in =SpecialSum(C8).
la source
Réponses:
La fonction définie par l'utilisateur suivante examinera votre bloc de feuilles de calcul. Si la feuille existe, la cellule d'intérêt est examinée pour voir si elle contient la chaîne Man . Si la chaîne est présente, le compte est incrémenté:
Les fonctions définies par l'utilisateur (UDF) sont très faciles à installer et à utiliser:
Si vous enregistrez le classeur, la fonction utilisateur est enregistrée avec celui-ci. Si vous utilisez une version d'Excel ultérieure à 2003, vous devez enregistrer le fichier au format .xlsm au lieu de .xlsx.
Pour supprimer le fichier UDF:
Pour utiliser le fichier UDF d'Excel:
où C8 est la cellule d'intérêt. Pour en savoir plus sur les macros en général, voir:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
et
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
et pour plus de détails sur les FDU, voir:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Les macros doivent être activées pour que cela fonctionne!
Cela vous permettra d'ajouter / supprimer des feuilles de calcul sans modifier la formule.
la source