Eviter les doublons dans 2 colonnes qui sont sur la même feuille

Accueil – Le CFO masqué Forums Excel Eviter les doublons dans 2 colonnes qui sont sur la même feuille

15 sujets de 1 à 15 (sur un total de 24)
  • Auteur
    Articles
  • #65202
    Pimpin
    Participant

    Bonjour,

    J’ai trouvé une formule pour éviter d’avoir des doublons de référence dans une colonne.
    nb.si($a:$a;a1)=1.
    Par contre dans ma feuille, j’ai 2 colonnes références qui sont séparées par d’autres colonnes “produit” “prix”.
    Je voudrai savoir comment faire pour empêcher les doublons dans les 2 colonnes avec une formule EXCEL sans VBA.
    J’ai essayé nb.si($a:$f;a1)=1, mais cette formule bug !
    Merci pour votre collaboration.

    #65210
    questvba
    Participant

    Bonjour,
    Je ne suis pas certain de tout comprendre car je ne visualise pas tes données.
    Si tes données sont dans un tableau structuré, tu peux découvrir les doublons avec cette formule :
    =NB.SI.ENS([Produit];[@Produit];[Prix];[@Prix])
    Quand tu dis empêcher les doublons, que veux-tu dire ? C’est au moment de l’encodage ? Avec une Validation de données ? Ou avec une Mise en Forme Conditionnelle ?

    #65211
    Pimpin
    Participant

    Salut,

    Quand je dis empêcher les doublons. Je voulais dire empêcher la saisie des doublons dans tout le classeur. Mais pour effectuer cela, je pense mettre ma formule dans Validation de données. Par contre, je n’arrive pas à combiner les 2 formules dans Validation de données.
    J’ai mis dans Critères de Validation : Personnalisé :

    =Et(B3>=0;B3<10000)+NB.si($B:$B;B3)=1

    Peux-tu me montrer mon erreur stp ?

    #65212
    questvba
    Participant

    Hello, Je ne comprends plus du tout. Dans le post 65202, tu parles de deux colonnes A et F, je suppose avec l’ébauche de la formule et ici, tu viens avec uniquement la colonne B. Mais bon, si je me concentre sur le 65211 alors tu dois modifier la structure de la formule comme ceci – pour avoir un contrôle sur le doublon et sur la valeur :
    =ET(B8>=0;B8<10000;NB.SI($B:$B;B8)<2)

    #65214
    Sophie Marchand
    Participant

    Bonjour Pimpin,

    Si je regarde votre première question, la formule est bonne pour être insérée dans une validation de données mais vous pouvez éprouver par contre des problèmes de performance. Ce n’est pas conseillé de sélectionner des colonnes entières pour leur apposer des validations de données.

    Il serait préférable d’apposer la validation de données à des tableaux bien définis en termes de lignes (la validation va se propager avec l’ajout de nouvelles lignes si vos tableaux sont construits avec la fonctionnalité Mettre sous forme de tableau).

    Donc, si votre formule bogue, c’est probablement pour une question de performance. Elle fonctionnerait sans doute dans un fichier vide.

    Si vous utilisez cette formule dans un tableau, assurez-vous néanmoins de sélectionner toutes les colonnes concernées avant d’appliquer la validation de données.

    Sophie

    #65237
    Pimpin
    Participant

    Oui je confirme que sur la présentation de ma feuille il existe bien 2 colonnes identiques avec le même format. Pour mieux visualiser les choses, j’ai créé sur une feuille 2 champs. Un côté pair et un côté impair. Chaque champ contient 3 colonnes identiques. “Numéro de porte” “Type de logement” “Tarif”. Bien sûr le numéro de porte reste unique. Mais étant donné qu’il y a un côté pair et impair, la validation des données doit pouvoir contrôler le numéro de porte qui doit demeurer unique. Est-ce plus clair ?
    Sinon ta formule me fonctionne pas. “Nous avons rencontré une erreur dans cette formule”

    #65238
    Pimpin
    Participant

    Bonsoir Sophie,

    Merci pour les conseils sur la performance mais ceci reste un petit programme à l’échelle locale.
    Ce n’est pas trop grave si cela ralentit mon ordinateur.

    #65239
    Sophie Marchand
    Participant

    Ce que j’essaie de vous dire, c’est qu’en appliquant une formule sur une colonne entière, vous appliquez le tout sur 1 million de lignes… Ce n’est pas recommandé. Passez par un tableau. Ce sera beaucoup plus performant. Vous avez dit vous-mêmes que votre formule boguait… Quel était le bogue au juste? Pour plus d’aide, merci de fournir votre fichier. Je pourrai y ajouter la bonne validation directement dedans. Merci.

    #65268
    Pimpin
    Participant

    Bonjour Sophie,

    J’ai mis en pièce jointe mon tableau.
    Et quelque soit la formule, cela ne résout pas mon problème dans VALIDATION DE DONNEES :

    =NB.SI($A$4:$A$14;A4)=1;ET(A4>=0;A4<10000)
    =ET(A4>=0;A4<10000)+NB.SI($A$4:$A$14;A4)=1

    Je voudrai que toutes les saisies effectuées dans une colonne “REFERENCE”, et ce quelque soit les tableaux remplis, soient uniques et comprises entre 0 et 9999.
    Donc si vous pouvez juste me noter la bonne formule.

    Merci pour votre aide.

    • Cette réponse a été modifiée le il y a 6 mois par Pimpin.
    Attachments:
    You must be logged in to view attached files.
    #65271
    Pimpin
    Participant

    Bonjour,

    J’aimerais savoir si c’est possible de masquer la saisie d’un mot de passe par “*” uniquement avec une combinaison de commande EXCEL ? Donc sans VBA ni macro.
    Merci bien

    #65291
    questvba
    Participant

    Hello,
    Je vois un truc pareil :
    =ET(A4>=0;A4<=10000;NB.SI.ENS($A$4:A15;A4)+NB.SI.ENS($E$4:E15;A4)+NB.SI.ENS(ARMOIRE2!$A$4:A15;A4)
    +NB.SI.ENS(ARMOIRE2!$E$4:E15;A4)=1)
    J’ai mis cette formule en A4 de ton tableau 1. Si tu encodes quelques références dans tes autres tableaux et que tu reviens sur cette cellule, tu auras un contrôle des doublons.

    • Cette réponse a été modifiée le il y a 6 mois par questvba.
    • Cette réponse a été modifiée le il y a 6 mois par questvba.
    Attachments:
    You must be logged in to view attached files.
    #65295
    Pimpin
    Participant

    Bonjour QUESTVBA

    Je te remercie sur la formule que tu m’as proposée mais elle rencontre aussi une erreur sur EXCEL

    #65302
    questvba
    Participant

    Hello Pimpin,
    Quelle erreur ? Ton message n’est pas très clair. Dans le fichier, tout fonctionne en fonction de ce que j’ai compris. Ce n’est pas le résultat escompté? La formule ne fonctionne pas? Il faut ajouter un critère?
    Peut être peux-tu joindre une explication plus précise de ce que tu veux. Au plaisir,

    #65308
    Pimpin
    Participant

    Salut,

    Je n’ai pas dit que ta formule n’est pas exacte. J’ai dit qu’EXCEL m’a mis le message d’erreur suivant :
    Il existe une ou plusieurs références circulaires dans lesquelles une formule fait référence à sa propre cellule directement ou indirectement. Essayez de supprimer ou de modifier les références ou changez les formules de cellule”.

    Merci bien

    #65320
    Sophie Marchand
    Participant

    Bonjour,

    Je ne suis pas du tout vos échanges, mais je peux quand même vous dire que ces deux formules ci-dessous sont inexactes:

    =NB.SI($A$4:$A$14;A4)=1;ET(A4>=0;A4<10000)
    =ET(A4>=0;A4<10000)+NB.SI($A$4:$A$14;A4)=1

    Il faudrait plutôt écrire la formule ci-dessous si vous désirez que les 3 conditions soient rencontrées:

    =ET(NB.SI($A$4:$A$14;A4)=1;A4>=0;A4<10000)

    Sophie

15 sujets de 1 à 15 (sur un total de 24)
  • Vous devez être connecté pour répondre à ce sujet.