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

GGPS58

XLDnaute Occasionnel
Bonjour à tous,

Malgré avoir consulté le forum maintes fois, je n'arive pas à trouver un exemple qui fonctionne pour mon problème.
J'ai une liste de références en colonne "A" et des désignations en colonne "B"
Je complete cette liste à l'aide d'un userform qui permet la saisie.
Je voudrais donc empécher de rentrer deux fois la même référence ou la même désignation.
Quand j'ai saisi une valeur dans une des text box de mon userform, je voudrais qu'un message m'avertisse du doublon.

J'ai trouvé plein d'exemples, mais je n'arrive pas à les faire fonctionner.

D'avance merci de votre aide.

GG
 
Re : Pb DOUBLON

Bonjour GG,

Je n'ai pas bien saisi ton problème, mais voici un code tu peux placer en faisant click sur l'onglet et bouton droit "visualiser le code".

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Colonne, Reponse As Integer
Dim Cellule As Object
If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
Colonne = Target.Column
If Colonne = 1 Or Colonne = 2 Then
For Each Cellule In Range(Chr(Colonne + 64) & ":" & Chr(Colonne + 64))
If LCase(Cellule.Value) = LCase(Target.Value) And Cellule.Address <> Target.Address Then
Reponse = MsgBox("Cette donnée a déjà été introduite dans la colonne." & _
Chr(10) & "Voulez-vous la laisser ?", vbYesNo + vbInformation, "Attention")
If Reponse = vbNo Then
Range(Target.Address).Activate
SendKeys "{F2}"
End If
Exit Sub
End If
If Cellule.Row > ActiveCell.SpecialCells(xlLastCell).Row Then Exit Sub
Next
End If
End Sub

Cette procedure permet de detecter des doublons dans la colonne A ou B.
Tiens nous au courant si ca ne marche pas.
A+
Sebgo
 
Re : Pb DOUBLON

Bonjour HFKDHF, Sebgo, bonjour le forum,

Une approche différente même si la méthode est similaire à celle de Sebgo. La macro ci-dessous agit à la sortie de la textbox. Je ne t'ai fait que pour la première textbox, tu adapteras à la TextBox2 :

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim p As Range 'déclare la variable p
Dim cel As Range 'déclare la variable cel
'définit la variable p (tu adapteras à ton cas)
With Sheets("Feuil1")
    Set p = .Range("A2:A" & Range("A65536").End(xlUp).Row) 'plage de A2 à A_dernière_ligne_éditée
End With
For Each cel In p 'boucle sur toutes les cellules de la plage
    If cel.Value = TextBox1.Value Then 'condition : si la valeur de la cellule ets égale à la valeur de la TextBox1
        MsgBox "Ce nom a déja été édité ligne " & cel.Row & " !" 'message
        Cancel = True 'empêche la sortie de la textbox
        TextBox1.SelStart = 0 'début de la sélection
        TextBox1.SelLength = Len(TextBox1.Value) 'longueur de la selection
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
Next cel 'prochaine cellule de la plage
 
End Sub
 
Re : Pb DOUBLON

Re bonjour,

Décidemment, je n'arrive pas à faire fonctionner le moindre de vos codes sur ce sujet doublon. Je ne vois pas où cela déconne.
Je créé un doublon, mais rien à faire il ne me prévient pas comme demandé.
Je joins mon fichier simplifié, des fois que ....

Merci d'avance
 

Pièces jointes

Re : Pb DOUBLON

Bonjour le fil, bonjour ler forum,

En fait tu aurais dû envoyer ta pièce jointe de suite cela aurait éviter une perte de temps...
J'ai modifié le code pour la sortie de de la TextBox1 et j'ai rajouté celui de la TextBox2. Le problème était que cel.Value renvoyait une valeur numérique et TextBox1.Value une chaîne de caractère donc il n'y avait jamais égalité. J'ai donc remplacé :

If cel.Value = TextBox1.Value par If CStr(cel.Value) = Textbox1.Value

Pour la seconde textbox j'ai utilisé
If UCase(cel.Value) = UCase(TextBox1.Value) qui permet de considérer comme identiques deux chaînes dont les casses (majuscules/minuscules) sont différentes.

Si ça convient pas enlève le UCase et les parenthèses qui vont avec...
 

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
10
Affichages
350
Réponses
1
Affichages
713
Réponses
4
Affichages
746
Réponses
2
Affichages
1 K
Réponses
0
Affichages
599
Retour