Conflit entre 2 listes de validation et 1 fonction personnalisée

cibleo

XLDnaute Impliqué
Bonjour le forum,

Dans un feuille de calcul, j'ai 2 listes de validation (Prénoms et Mois 2008) en A2 et B2, et une fonction personnalisée (Boisgontier) placée en IV25 qui me calcule le nombre d'images dans la plage désignée comme ceci =NbShapes(C25:IJ25;"Retour")

Ci-dessous, la fonction est placée dans un module standard :

Code:
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

Une procédure événementielle placée dans ThisWorkbook pour mettre à jour le calcul de cette fonction personnalisée.
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CalculateFullRebuild
End Sub

Or je m'aperçois que mes 2 listes de validation situées en A2 et B2 interfèrent sur le résultat de ma fonction personnalisée.
En effet, le message d'erreur #Valeur s'affiche quand je veux opérer un changement dans mes listes de validation en A2 ou B2.

D'autre part, le menu déroulant de ma liste située en B2 ne fonctionne plus (la petite flèche n'apparaît plus).

Sinon tout fonctionne bien lorsque je navigue dans ma feuille de calcul.

Aussi en fermant puis en réouvrant mon classeur, tout se rétablit normalement.

Y a t-il un problème dans la procédure événementielle, je l'avais reprise dans un post du forum, est-elle la bonne solution pour la mise à jour de la fonction personnalisée ?

Merci de votre aide

Cibleo
 

cibleo

XLDnaute Impliqué
Re : Conflit entre 2 listes de validation et 1 fonction personnalisée

Bonjour Boisgontier,

Ci-joint mon fichier, je n'ai pas eu le temps de l'alléger, il est en cours d'élaboration, il s'agit de la feuille de calcul "Modele".

En colonne IV3:IV33, ta fonction personnalisée insérée.
En A2 et B2, les 2 listes de validation, à l'ouverture du fichier tout semble marcher, mais dès que je touche à A2 ou B2, #Valeur s'affiche.

Cijoint.fr - Service gratuit de dépôt de fichiers

Amicalement Cibleo
 

cibleo

XLDnaute Impliqué
Re : Conflit entre 2 listes de validation et 1 fonction personnalisée

Re Boisgontier,

Effectivement, j'y pensais.

Mais comme tu as pu le constater, j'ai des macros de marquage (insertion de différents caractères avec motif couleur) et des macros d'insertion de shapes (ces dernières définissent des événements intervenant dans une journée de travail).

Les shapes chevauchent mes caractères de marquage en quelque sorte. Je ne peux pas intégrer du "wingdings" cela va remplacer les caractères et fausser ainsi le résultat obtenu par mes macros de marquage.

On va bien trouver une solution.

Bonne soirée à tous

Cibleo
 

cibleo

XLDnaute Impliqué
Re : Conflit entre 2 listes de validation et 1 fonction personnalisée

Re bonsoir le forum,

Ca reste une enigme.

Malgré tout, si je supprime les 2 listes de validations en A2 et B2, la fonction personnalisée n'affiche plus le message d'erreur #Valeur, tout fonctionne à merveille.

Vraiment bizarre !!!

Cibleo
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Conflit entre 2 listes de validation et 1 fonction personnalisée

Code:
Function NbShapes(f, champ, generique)
  Application.Volatile
  For Each s In Sheets(f).Shapes
    If s.Type <> 8 Then
      If Not Intersect(s.TopLeftCell, champ) Is Nothing And _
       UCase(s.Name) Like UCase(generique) & "*" Then n = n + 1
      End If
  Next s
  NbShapes = n
End Function

=NbShapes("Modele";Modele!C3:IJ3;"retour")

http://cjoint.com/?hnuWh06xVQ


JB
 
Dernière édition:

cibleo

XLDnaute Impliqué
Re : Conflit entre 2 listes de validation et 1 fonction personnalisée

Bonsoir le forum,
Bonsoir Boisgontier,

Merci pour la modification de la "Function", cela me convient.

D'autre part, j'indiquais plus haut que la flèche de ma liste de validation située en B2 n'apparaissait plus, rendant le menu déroulant inexploitable.
Après recherche sur le forum, je m'aperçois que le problème est lié aux volets figés au niveau de cette cellule B2.

Je pense qu'il n'y a rien à faire sauf à libérer les volets ou les figer en C2 par exemple, la flèche devient alors à nouveau visible.

Bonne soirée à tous et à bientôt pour de nouveaux bugs.

Cibleo
 

Discussions similaires

Réponses
8
Affichages
445

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal