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

Eviter les doublons

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 !

ezrielle

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterai que l'utilisateur de mon programme excel ne puisse pas faire d'erreur en remplissant les tableaux.

Pour cela j'aimerai m'assurer que se soit impossible de rentrer 2 fois la même chose dans la meme colonne.

Comment dois_je faire qu'elle est l'astuce svp

Merci pour votre aide

EZ
 
Re : Eviter les doublons

Bonjour,

Avec une plage de saisie qui va de A1 à A ..., sélection de la plage, puis :

Données - Validation - Autoriser : Personnalisé - Formule :

=NB.SI(plage;A1)=1

Décocher : Ignorer si vide

@+
 
Re : Eviter les doublons

Bonjour,
a placer en VBA dans la feuille concernée.
Private Sub Worksheet_Change(ByVal cellule As Excel.Range)
If cellule.Column = 1 Then
If Application.WorksheetFunction. _
CountIf(Range("A:A"), cellule.Value) > 1 Then
MsgBox "Hola ! Mais t'es fou , j'y suis déja "
cellule.Value = ""
cellule.Select
End If
End If
End Sub

A +
 
Re : Eviter les doublons

Bonjour à tous
Pour ezrielle : Collez ceci dans le module de code de la feuille à traiter :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ctl, i As Long, col As Long
    col = 1 [COLOR="Green"]'numéro de la colonne à contrôler[/COLOR]
    If Not Intersect(Target, Me.Columns(col)) Is Nothing Then
        ctl = Me.Range(Me.Cells(1, col), Me.Cells(Me.Rows.Count, col).End(xlUp))
        If VarType(ctl) = 8204 Then
            For i = 1 To UBound(ctl, 1)
                If Not IsEmpty(Target.Cells(1, 1)) And Target.Cells(1, 1) = ctl(i, 1) And i <> Target.Cells(1, 1).Row Then Exit For
            Next i
            If i <= UBound(ctl, 1) And i <> Target.Cells(1, 1).Row Then Target.Cells(1, 1).Select: MsgBox Target.Cells(1, 1).Value & " existe déjà en ligne " & i: Target.Cells(1, 1).Value = Empty
        End If
    End If
End Sub
Ne "plante" pas si on efface toutes les valeurs de la colonne à surveiller.​
Bon courage !
ROGER2327
 
- 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
18
Affichages
2 K
G
Réponses
4
Affichages
1 K
Gregoryen
G
T
Réponses
11
Affichages
3 K
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…