Bloquer la création d'une celulle si une autre cellule de la feuille est identique

zaz38000

XLDnaute Nouveau
Tout d'abord, bonjour à tous,

J'espère que quelqu'un pourras m'aider, car même dans ma tête ça n'a pas l'air très claire.
Je suis étudiant en ecole d'ingénieur et actuellement en stage (non je n'ai pas eu de vacance cette année :p)

Pour faire court, je cherche à bloquer la création d'une cellule si une autre cellule de la feuille est identique uniquement sur une colonne.
Par exemple si en colonne F, ligne 2 je marque "raclette" dans la colonne F l'on ne peut plus écrire "raclette" peu importe la ligne.
J'ai en premier lieu penser à une macro avec une simple boucle for qui envoie un message d'erreur, mais il faut croire que je ne suis pas très bon en VBA. On nous apprend d'autres langages inutiles dans mon école d'ingé :s

Merci d'avance aux personnes qui essayeront de répondre à ce message ^^
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bloquer la création d'une celulle si une autre cellule de la feuille est identiq

Bonjour Zaz et bienvenu, bonjour le forum,

peut-être comme ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 6 Then Exit Sub
If Application.WorksheetFunction.CountIf(Columns(6), Target.Value) > 1 Then Target.Clear: Target.Select
End Sub
 

zaz38000

XLDnaute Nouveau
Re : Bloquer la création d'une celulle si une autre cellule de la feuille est identiq

Merci d'avoir répondu aussi vite, Robert,

Je te remercie grandement, sa marche du premier coup!
Je vais juste voir maintenant s'il est possible d'afficher un message pour qu'un autre utilisateur puisse comprendre pourquoi sa case est supprimée.

Merci encore et bonne après midi.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bloquer la création d'une celulle si une autre cellule de la feuille est identiq

Bonjour Zaz, bonjour le forum,

Alors comme ça peut-être :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 6 Then Exit Sub
If Application.WorksheetFunction.CountIf(Columns(6), Target.Value) > 1 Then
    Target.Clear
    MsgBox "Valeur non valide ! Existe déjà dans la colonne."
    Target.Select
End If
End Sub
 

zaz38000

XLDnaute Nouveau
Re : Bloquer la création d'une celulle si une autre cellule de la feuille est identiq

Excuse moi en faite je viens de réaliser une petite note désagréable.
La donnée n'est pas juste supprimer mais remplacée par une cellule verrouillée.
Or, mon document est protégé par un mot de passe ce qui empeche les autres utilisateurs de ré-utiliser cette cellule.

Peut-on modifier ce détail?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bloquer la création d'une celulle si une autre cellule de la feuille est identiq

Bonjour Zaz, bonjour le forum,

Remplace : Target.Select par Target.Locked=True. Si ça marche pas pas mets ton fichier en pièce jointe...
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 912
Membres
101 837
dernier inscrit
Ugo