interdire la saisie de doublons

  • Auteur de la discussion Didier
  • Date de début
D

Didier

Guest
Bonjour à tous!
voici la formule pour interdire des doublons texte dans un champ (ici C2:C100 )avec le menu données/validation liste :autoriser/personnalisé avec message d'erreur apparant


NB.SI($C$2:$C$100;C2)=1

cela marche très bien pour du texte.. mais comment faire avec des chiffres 1,2, 45, 36 .....?

merci d'avance!
Didier
 
A

andré

Guest
Salut Didier,

Sélectionne C2:C100 et place en C2 la formule : =NB.SI(C$2:C$100;C2)<2
Pas besoin de copier cette formule, elle se place automatiquement de C2 à C100.
Ceci t'empêche de saisir des doublons dans la colonne C

Si tu veux interdire la saisie de nombres préalablement définis, mais admettre des doublons de la colonne C dans la colonne C, tu tapes ces nombres dans une autre colonne, par exemple la D; donc de D2 à D5 : 1, 2, 45, 36 et tu modifies la plage de ta formule de la colonne C comme suit :
=NB.SI(D$2:D$100;C2)<2

Si tu veux interdire dans la colonne C tant les doublons de la colonne C que ceux de la colonne D, la formule devient : =NB.SI(C$2:D$100;C2)<2

Ândré.
 
D

Didier

Guest
Super merci beaucoup! c'est toujours surprenant la rapidité de réponse sur ce forum...
Autre chose .. est ce posible d'inclure plusieurs feuilles d'un même classeur dans ce genre de formule?

Merci!
Didier
 
A

andré

Guest
Resalut Didier,

Je n'ai jamais essayé, mais à première vue oui.
Il faudrait peut-être jongler quelque peu avec des ET ou OU dans la formule.

Si tu ne trouves pas, fais signe.

Ândré.
 
D

Didier

Guest
Je crois que je ne suis pas suffisament callé pour ce genre de gymnastique..
mon idée est simplement de pouvoir, (dans un classeur utilisé pour ma comptabilité), utiliser des numéros de "pièce" unique sur l'ensemble du classeur.
merci pour ton aide très précieuse!
Didier.
 
A

andré

Guest
Resalut Didier,

Tu l'avais prédit, une sérieuse gymnastique !

J'avais oublié que les listes de validation sont limitées à la feuille et ne peuvent faire référence à d'autres feuilles.

Donc, si on ne peut résoudre le problème de face, on le contourne.
Voici ce que j'ai fait :

Sur chaque feuille j'ai créé une colonne (A) supplémentaire (qui peut être cachée).
Dans chaque cellule de ces colonnes A j'ai additionné le nombre de cellules identiques à la cellule voisine (B) et ceci en prenant toutes les feuilles en considération.
Puis j'ai mis dans la colonne d'imputation (B) une liste de validation dont la valeur se réfère à la cellule voisine de la nouvelle colonne (A).

Comme cela, cela a l'air d'être difficle (d'autant plus que c'est très mal expliqué !), mais avec l'exemple joint c'est facile à comprendre (me semble-t-il).

Il suffit d'écrire une fois la formule, puis elle peut être copiée dans la feuille, et sur les autres feuilles simplement en changeant le nom des onglets.

Il n'est plus possible d'encoder dans la colonne B (de B1 à B30) un code figurant dans une des colonnes B des trois feuilles.
Mais peut-être te suffit-il d'appliquer cette procédure sur une seule feuille ?

Je n'ai pas trouvé plus simple.

Bonne soirée.
Ândré.
 

Fichiers joints

D

Didier

Guest
Oui! c'est compliqué mais beaucoup plus simple que tout ce que j'ai essayé jusque là! ca devrait faire mon bonheur...
merci pour ton aide!
Didier
 
G

Gérard DEZAMIS

Guest
Bonjour André et Didier

Je suis dans ma phase d'épluchage de courrier; à la pêche aux news ! et
André dans ce post tu dis :
"J'avais oublié que les listes de validation sont limitées à la feuille et ne peuvent faire référence à d'autres feuilles."

Le fait de "nommer" ces listes ne permet-il pas de les utiliser dans d'autres feuilles ?
@+
GD
 
A

andré

Guest
Salut Gérard et Didier,

Tu as tout à fait raison, pour créer une liste de validation (Autoriser : liste)d'une plage située sur une autre feuille, il suffit de nommer cette plage pour que cela fonctionne.

Mais pour une validation personnalisée (Autoriser : personnalisée) avec la formule : =A1<>liste (pour autant qu'une plage dans la même feuille ou dans une autre soit nommée "liste"), cela ne fonctionne pas, parfois bien pour la première cellule, mais pas toujours.
Et je ne sais pas pourquoi !

Par contre, une formule qui se réfère à une seule cellule fonctionne (vois mon exemple pour Didier).

C'est un problème à éclaircir, mais je ne me suis pas encore lancé à fond dans cette recherche.
Un jour peut-être je trouverai !

Ândré.
 
M

Monique

Guest
Bonjour,

Eh bien si, interdire la saisie de valeurs contenues dans une plage (nommée) d'une autre feuille, avec Nb.Si, ça peut marcher.

Liste avec des blancs,
celle-ce ne fonctionne pas :
=NB.SI(Liste;A2)=0
celle-ci fonctionne :
=NB.SI(DECALER(Liste;0;0;NBVAL(Liste));E2)=0

Liste sans blancs, celle-ci fonctionne :
=NB.SI(ListeDeux;H2)=0
 
D

Didier

Guest
Bonjour et merci à tous pour votre aide..
Monique, pourrais-tu me fabriquer un exemple avec ta suggestion?
merci d'avance!
cordialement
Didier.
 
D

Didier

Guest
Bonjour et merci à tous pour votre aide..
Monique, pourrais-tu me fabriquer un exemple avec ta suggestion?
merci d'avance!
cordialement
Didier.
 
D

Didier

Guest
Fantastique!
je vais quand même me pencher sur la ligne de fonction que tu as créé.. je veux aussi apprendre un plus!
merci encore pour cette aide précieuse!
Didier.
 

Discussions similaires


Haut Bas