Interdire la saisie de doublons dans plusieurs plages

  • Initiateur de la discussion Initiateur de la discussion criscris11
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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
 
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.
 
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
 
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
 
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:
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour