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

Interdire l'entrée d'une valeur identique

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

David590

XLDnaute Occasionnel
Bonjour à tous,

Je scanne des codes barre à dans la colonne C de la feuil2, et j'aimerais interdire l'entrée par une messagebox si une valeur identique à la cellule écrite par le code barre est déjà présente dans la colonne "C" ou "T" de la feuil2 ou "C" de la feuil4
Et aussi interdire l'entrée si le code ne fait pas 24 caractères comme tous les autres
Pouvez vous m'aider?

Ci joint un petit fichier exemple

Merci d'avance
 

Pièces jointes

Dernière édition:
Re : Interdire l'entrée d'une valeur identique

Bonjour David590

Ton nouveau code barre Scanné s'écrit à quel endroit ?
Donnes nous soit une adresse de cellule ,soit une textbox si tu travail en VBA.

Cordialement
 
Re : Interdire l'entrée d'une valeur identique

Bonsoir néné06, Softmama

C'est parfait, c'est exactement ce qu'il me fallait, mais j'ai quand même essayé de comprendre le code et je ne comprend pas ou tu choisis la colonne C de la feuil4, au cas ou je veux modifier le code
Ca doit se passer certainement ici

Code:
Set c = Cells.Find(What:=Target.Text, LookIn:=xlValues, LookAt:=xlWhole)
   If Not c Is Nothing And c.Address = Target.Address Then Set c = Cells.FindNext(c)
     If c.Address <> Target.Address Then
       If c.Column = 256 Then

Peut tu me dire quoi changer?
Merci @+ 🙂
 
Re : Interdire l'entrée d'une valeur identique

Bonsoir,

Non, en fait, j'ai un peu triché... (Regarde la colonne IV de la feuil2 pour comprendre). Pour faire plus propre, on peut faire plutôt ainsi:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Count > 1 Then Exit Sub
If Target.Column = 3 Then
 If Target <> "" Then
  If Len(Target) <> 24 Then MsgBox "Y a pas 24 chiffres dans le code!": Target = "": Exit Sub
  If Val(Target) = 0 Then MsgBox "Ce code n'est pas un nombre!": Target = "": Exit Sub
'On colle dans la colonne IV le contenu de la colonne C de la feuil4
  Sheets("Feuil4").Columns(3).Copy Range("IV1")
   Set c = Cells.Find(What:=Target.Text, LookIn:=xlValues, LookAt:=xlWhole)
   If Not c Is Nothing And c.Address = Target.Address Then Set c = Cells.FindNext(c)
     If c.Address <> Target.Address Then
       If c.Column = 256 Then
         MsgBox "Ce code existe déjà en feuil4!C" & c.Row: Target = ""
       Else
         MsgBox "ce code existe déjà en cellule " & c.Address(0, 0): Target = ""
       End If
     End If
   End If
'puis on efface la colonne IV
  Columns(256).Delete
 End If
End Sub
 

Pièces jointes

- 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
2
Affichages
467
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…