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 :D.
Bonne soirée à tous.
 
Dernière édition:

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

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

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+
 

Discussions similaires

Statistiques des forums

Discussions
312 146
Messages
2 085 764
Membres
102 967
dernier inscrit
Syl34