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

éviter saisie doublon sur différentes colonnes

  • Initiateur de la discussion Initiateur de la discussion jtitin
  • 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 !

jtitin

XLDnaute Occasionnel
Bonjour à tous
je ne parviens pas à trouver dans le forum le solution:
éviter doublon dans la feuille entière OK mais dans différentes colonnes, par exemple colonne 1,3,5,7..
je ne trouve pas

ce code si dessous fonctionne pour la feuille entière, que faut il modifier pour agir sur des colonnes spécifiées.
je tape un texte dans n'importe quelle colonne 1,3,5.. si le texte existe alors msg doublon, texte tapé supprimé
si le texte est tapé dans d'autres colonnes 2,4,6.. les doublons ont les laisses

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
If Target.Value = "" Then
Exit Sub
End If
For Each Cell In Intersect(UsedRange, Cells)
If Cell.Address = Target.Address Then
GoTo suite
End If
If Cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
suite:
Next Cell
End Sub


Merci pour votre aide
 
Re : éviter saisie doublon sur différentes colonnes

Bonjour,
regarde du côté des méthodes Application.Union (qui renvoie l'union d'au moins deux plages) et Application.Intersect afin que ta macro ne se déclenche que si tu es dans la zone définie par Union (cf.l'aide d'Excel touche F1 pour ces 2 métodes) :
Set isect = Application.Intersect(Target, PlageUnion)
If Not isect Is Nothing Then
'ton code
End If
A+
 
Re : éviter saisie doublon sur différentes colonnes

Re bonjour
non en fait ce que je fait n'est pas bon.
n'importe quoi que je tape au niveau des plages à vérifier me renvoi le message "le mot existe ..."

mon code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
Dim PlageUnion As Range

If Target.Value = "" Then
Exit Sub
End If
Set PlageUnion = Application.Union(Range("fruit"), Range("légume"), Range("céréales"))
For Each Cell In Intersect(Target, PlageUnion)
If Cell.Address = Target.Address Then
GoTo suite
End If
If Cell.Value = Target.Value Then
MsgBox "saisissez un autre Nom, celui ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
suite:
Next Cell
End Sub
 
Re : éviter saisie doublon sur différentes colonnes

Bonjour à tous


Un essai :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim Msg$, oCell As Range, pCell As Range
    Msg = """ existe déjà." & vbLf & "Saisissez une autre valeur !"
    For Each oCell In Cible.Cells
        If Not IsEmpty(oCell) And (oCell.Column Mod 2) Then
            For Each pCell In UsedRange
                If Not IsEmpty(pCell) And (pCell.Address <> oCell.Address) Then
                    If pCell.Value = oCell.Value And oCell.Value <> "" Then
                        oCell.Value = InputBox("""" & oCell.Value & Msg)
                    End If
                End If
            Next
        End If
    Next
End Sub


ROGER2327
#5775


Dimanche 22 Clinamen 139 (Fête des Polyèdres - fête Suprême Seconde)
24 Germinal An CCXX, 5,1905h - roquette
2012-W15-5T12:27:26Z
 
- 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

Réponses
3
Affichages
832
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…