Monsieur Excel
Pour tout savoir faire sur Excel !

28 juillet 2007

Refus des doublons : Solution

En fait, après de nombreux essais, j’ai enfin identifié la raison pour laquelle le problème présenté il y a quatre jours survenait.

Cela tient au fait, dont je ne comprends d’ailleurs pas la raison, que la formule de validation =estna(equiv(A13; Vérif!A:A;0)) n’est pas évaluée de la même façon dans la feuille de calcul et dans la validation de cellule !!!

Pour mettre cette différence en relief, j’ai entré dans la cellule C13 exactement la même formule que pour la validation. Si donc le contenu de la colonne C est évalué en FAUX, la saisie dans la cellule A13 devrait en toute logique être rejetée.

Eh bien, cela ne marchait pas avec =estna(equiv(A13;Vérif!A:A;0)). Je me suis dit que cela était peut-être du au fait d’avoir utilisé toute la colonne A dans l’Equiv. J’ai donc donné le nom Contrôle au bloc exact A2:A21 des données de la feuille Vérif. Et le contrôle de validation s’est enfin mis à fonctionner proprement.

J’ai ensuite modifié la définition du nom pour faire référence à A2:A31, afin de faire la place pour de nouvelles saisies, et le contrôle de validation s’est remis à ne plus marcher, alors que la formule dans la colonne C affichait bien le résultat FAUX !

J’ai redéfini Contrôle pour le bloc A2:A21, et la validation a remarché. J’ai ensuite effacé une des données du bloc A2:A21 et il s’est remis à ne plus marcher…

Conclusion – Quand il y a un ou plusieurs blancs dans le vecteur de recherche, la fonction Equiv ne donne pas le même résultat selon qu’elle est entrée dans une cellule ou dans un contrôle de validation. Allez donc savoir pourquoi !!!

Solution – Soit vous entrez comme je l’ai fait la formule de validation dans une colonne masquée de la feuille et vous remplacez la formule de validation par =C13, soit vous définissez un nom élastique pour la zone « Contrôle ». Cette dernière solution ne marchera bien que s’il n’y a pas de trou dans la zone « Contrôle »…

1 Commentaire(s):

  • Décidément, les mystères de la programmation Excel resteront impénétrables.
    Pourquoi est ce que la formule dans la zone de validation :
    =NB.SI(Contrôle;A13)=0
    ne fonctionne pas alors que si je l'utilise dans le même onglet que la listte en tapant =NB.SI(Contrôle;A13)=1, cela fonctionne parfaitement (utilisation différente : pour éviter de saisir 2 fois la même valeur of course) ?
    (pas très clair mon truc...)
    Bonnes vacances

    By Anonymous Anonyme, sur 7:34 PM  

Enregistrer un commentaire

<< Accueil