Compter le Nbr de commentaire dans un autre classeur

Bonjour

Je suis à la recherche d’une fonction qui me permettrait de calculer :

- le nombre de commentaires sur une zone précise d’une feuille dans un classeur différent et correspondant à un commentaire précis.

Pour être plus clair, j’ai réalisé 2 classeurs d’exemple

Data (Là où sont les données avec les commentaires à compter)

Récapitulatif (Là ou je souhaite récupérer ces nombres de commentaires)

Si quelqu’un peut m’aider, merci d’avance

A+

14data.xlsx (9.65 Ko)
10recapitulatif.xlsx (8.46 Ko)

Il te suffit de faire une fonction toute bête

Function comptercommentaires(R as range, x as string, class as string) as integer
Dim nb as integer
Dim c as range
For each c in workbooks(class).R 'ou workbooks(class).range(R)
if Split(c.Comment.Text, Chr(10))(1) then
nb = nb+1
end if
next c
comptercommentaires=nb
end function

Il te suffira d'ouvrir tes deux classeurs et d'écrire dans une feuille

=comptercommentaires(B10:B50,"toto","Data.xlsx")

Pour avoir le nombre de commentaires dont le texte est toto dans B10:B50 de Data.xlsx

Non testé: vérifie la synthaxe des bornes de la boucle

Bonjour

Merci pour ton aide

J'ai suivi ton aide, mais j'arrive à une erreur de valeur.

Je suis surpris, car si le classeur est bien indiqué, le nom de la feuille ne l'est pas ??

A+

19recapitulatif.xlsm (14.20 Ko)

Bien vu:

Function comptercommentaires(R as range, x as string, class as string,feuille as string) as integer
Dim nb as integer
Dim c as range
For each c in workbooks(class).sheets(feuille).R 'ou workbooks(class).sheets(feuille).range(R)
if Split(workbooks(class).sheets(feuille).c.Comment.Text, Chr(10))(1) then
nb = nb+1
end if
next c
comptercommentaires=nb
end function

=comptercommentaires(B10:B50,"toto","Data.xlsx";"Feuil1")

Re,

J'ai fait la correction

Mais toujours erreur de valeur .

A+

J'aurais mieux fait de tester

Function comptercommentaires(R As String, x As String, class As String, feuille As String) As Integer
Dim nb As Integer
Dim c As Range
For Each c In Workbooks(class).Sheets(feuille).Range(R) 'ou workbooks(class).sheets(feuille).range(R)
If Not c.Comment Is Nothing Then
If Split(c.Comment.Text, Chr(10))(1) = x Then
nb = nb + 1
End If
End If
Next c
comptercommentaires = nb
End Function

=comptercommentaires("B6:E8";"Manquant";"Data.xlsx";"Données")

Re,

Pas mieux

Pour la formule, j'ai mis

=comptercommentaires(Data.xlsx!Zone1;"Manquant";"Data.xlsx";"Données")

Car si je mets B6;E8, il cherche dans le classeur en cours

Mais cela ne suffit pas.

A+

=comptercommentaires("B6:E8";"Manquant";"Data.xlsx";"Données")

A noter que les deux fichiers doivent être ouverts

Oui, les 2 classeurs sont bien ouverts

Marche parfaitement chez moi

Re,

Peux-tu m'envoyer tes 2 classeurs ?

J'ai sans soute fait une erreur quelque part

A+

Voilà

17recapitulatif.xlsm (15.89 Ko)
15data1.xlsx (10.08 Ko)

Re,

Incroyable, je viens de recopier la macro de ton classeur dans le mien, tes formules et cela ne fonctionne pas !

Je viens de l’intégrer dans mon classeur d’origine et cela fonctionne parfaitement

Je ne sais d’où peut venir mon erreur, j’aime bien savoir pourquoi, mais cela fait une heure que je cherche, alors tant pis. L’essentiel c’est que cela fonctionne.

J’avais quand même au départ commis une erreur dans ma formule, je n’avais pas l’adresse E6 :B8 entre guillemets.

Comment cela se fait-il que l’on doit mettre cette adresse entre guillemets ??

Je ne comprends pas ?

Une autre question, est-ce que tu pense que l’on peut utiliser ta fonction à l’intérieur d’une autre fonction ?

Je pense à SOMMEPROD ?

Merci

A+

bah ouais no souci

J'ai volontairement mis des guillemets pour la traiter comme un string mais c'est faisable avec des range aussi

Merci

Et au sujet de ma deuxième question (Sommeprod) ?

A+

regarder ma première réponse: bah ouais no souci

Mais tu aurais quand même pu tester avant de poser la question.

Oui c'est vrai, mais cela va sans doute être plus compliqué du fait des 4 paramètres à renseigner

Mais je vais m'y mettre

A+

Tu peux supprimer des paramètres si tu mets les données dans la fonction...

Pour l'instant j'ai pas de message d'erreur

Mais les nombres sont totalement faux et incohérents

Je vais essayer de comprendre comment ils sont générés ???

Supprimer des paramètres, je ne vois pas bien lesquels ?

Si ta feuille s'appelle toujours de la même façon inutile de la mettre en argument, de même pour ton nom de fichier...

Rechercher des sujets similaires à "compter nbr commentaire classeur"