Bonjour,
Je suis archi novice sur VBA, j'ai reproduit une fontion personnalisée NbShapes(source Boisgontier) qui me permet de compter le nombre d'images présentes dans un champ. Tout fonctionne parfaitement sur mon onglet Feuil1, en tapant sur F9, mes calculs se mettent à jour.
Le problème est que lorsque je duplique mon onglet (Feuil2) et que je mets à jour les calculs, le résultat sur Feuil1 devient #Valeur et vice versa.
De plus sur une 3ème feuille nommée TOTAL, je souhaiterais totaliser les résultats des onglets précédents et forcément, vu le problème de #Valeur, cela ne peut pas fonctionner.
Ci-dessous la fonction :
Function NbShapes(champ, generique)
Application.Volatile
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, champ) Is Nothing And _
s.Name Like generique & "*" Then n = n + 1
Next s
NbShapes = n
End Function
Je vous joins également le classeur que Boisgontier avait posté à l'époque sur lequel j'ai ajouté des onglets pour illustrer mon problème.
Merci à tous ceux qui voudront bien prendre le temps de me répondre.
Bonne journée.
Je suis archi novice sur VBA, j'ai reproduit une fontion personnalisée NbShapes(source Boisgontier) qui me permet de compter le nombre d'images présentes dans un champ. Tout fonctionne parfaitement sur mon onglet Feuil1, en tapant sur F9, mes calculs se mettent à jour.
Le problème est que lorsque je duplique mon onglet (Feuil2) et que je mets à jour les calculs, le résultat sur Feuil1 devient #Valeur et vice versa.
De plus sur une 3ème feuille nommée TOTAL, je souhaiterais totaliser les résultats des onglets précédents et forcément, vu le problème de #Valeur, cela ne peut pas fonctionner.
Ci-dessous la fonction :
Function NbShapes(champ, generique)
Application.Volatile
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, champ) Is Nothing And _
s.Name Like generique & "*" Then n = n + 1
Next s
NbShapes = n
End Function
Je vous joins également le classeur que Boisgontier avait posté à l'époque sur lequel j'ai ajouté des onglets pour illustrer mon problème.
Merci à tous ceux qui voudront bien prendre le temps de me répondre.
Bonne journée.