Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Interdire la saisie de doublons dans plusieurs plages

criscris11

XLDnaute Accro
Bonsoir le forum,
Est il possible d'interdire la saisie de doublons dans plusieurs plages de cellules via le menu Données=>validation
Code:
exemple pour une colonne
=NB.SI($A$2:$A$11;A2)=1
et en fait j'aimerais l'appliquer sur 4 colonnes différentes.
Si ce n'est pas possible par cette option, j'accepte les propositions en VBA sans discrimination .
Bonne soirée à tous.
 
Dernière édition:

tanerbus

XLDnaute Nouveau
Re : Interdire la saisie de doublons dans plusieurs plages

bonsoir

j'ai fait ce que j'ai pu

sa interdit pas la saisie mais sa prévint par un msgbox
 

Pièces jointes

  • verifiboublon4colone.xls
    39 KB · Affichages: 186

Hervé

XLDnaute Barbatruc
Re : Interdire la saisie de doublons dans plusieurs plages

salut cricri

en vba ca pourrait ressembler à ceci, a adaper pour la plage
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CountIf(Range("a1:d10"), Target) > 1 Then Target = ""
End Sub

salut
 

criscris11

XLDnaute Accro
Re : Interdire la saisie de doublons dans plusieurs plages

Bonsoir Tabernus, salut Hervé, re le forum,
Merci pour vos réponses à tous les 2.
Je teste tout cà et je reviens vous dire.
Bonne soirée.
 

criscris11

XLDnaute Accro
Re : Interdire la saisie de doublons dans plusieurs plages

Re,
J'opte pour le code d'Hervé mais merci quand même Tabernus.
Hervé : dans ton code, serait il possible de mettre un msgbox à la place de "" (je pense que oui et je vois comment faire enfin je crois) : je remplace "" par MsgBox "Ce numéro a déjà été saisi" mais surtout est il possible d'atteindre le numéro déjà saisi dans la plage concernée ?
Merci d'avance et bonne soirée.
 

JCGL

XLDnaute Barbatruc
Re : Interdire la saisie de doublons dans plusieurs plages

Bonjour à tous,

Sur la base du code d'Hervé :

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CountIf(Range("A1:D10"), Target) > 1 Then MsgBox "Doublon !!!!", vbCritical, "Oups !!!!"
If Application.CountIf(Range("A1:D10"), Target) > 1 Then Target = ""
End Sub
A+ à tous
 

vbacrumble

XLDnaute Accro
Re : Interdire la saisie de doublons dans plusieurs plages

Bonsoir tous


Désolé mais comme je m'ennuyais

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CountIf(Range("A1:D10"), Target) > 1 Then Target = Replace(Chr(31 + (MsgBox("Doublon !!!!", vbCritical, "Oups !!!!"))), Chr(32), "")
End Sub
 

criscris11

XLDnaute Accro
Re : Interdire la saisie de doublons dans plusieurs plages

Re,
Merci JC.
Crois tu que l'on peut atteindre le numéro déjà saisi ? Un peu comme une recherche à l'intérieur de la plage ?
Sur ce, je te souhaite une bonne soirée.
 

criscris11

XLDnaute Accro
Re : Interdire la saisie de doublons dans plusieurs plages

Re,
merci d'avoir rejoint le fil vbacrumble : plus on est de fou, plus on rit.
Pour rester sérieux, crois-tu que ma dernière question soit réalisable ?
Ou peut-être simplement d'indiquer l'adresse de la cellule dans le MsgBox ?
Bonne soirée.
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : Interdire la saisie de doublons dans plusieurs plages

bonsoir à tous,

pour la recherche dans la plage :

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Valeur
If Application.CountIf(Range("A1:D10"), Target) > 1 Then
     MsgBox "Doublon !!!!", vbCritical, "Oups !!!!"
     Valeur = Target
     Target = ""
     Range("A1:D10").Find(Valeur).activate
End If
End Sub

A+
 

criscris11

XLDnaute Accro
Re : Interdire la saisie de doublons dans plusieurs plages

Re,
D'accord avec toi mais tu as apporté ta pierre à l'édifice et c'est bien le but de ce forum, non ?
Encore merci à tous les acteurs de ce fil et bonne soirée.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…