empecher saisi de doublon

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

D

doudo

Guest
Bonjour à tous et merci par avance de l'aide que vous pourrez m'apporter!!

Malgré les nombreux sujets sur les doublons je ne trouve aucune réponse à mon problème:

Je voudrais empecher les utilisateurs d'entrer un doublon (que ce soit par la saisie clavier ou par un copié collé), voir le fichier en pièce jointe...

Il n'est pas inutile de souligner que mon fichier original est composé de 5000 lignes et 80 colonnes

Voilà un code de départ qui ne marche déjà pas:

Sub essai_doublon()
For i = 1 To 5000
For j = 1 To 5000
If i = j Then Exit Sub
If Cells(i, 10) = "" Then Exit Sub
If Cells(j, 10) = "" Then Exit Sub
If Cells(i, 10).Value = Cells(j, 10).Value Then MsgBox ("DOUBLON")

Next
Next
End Sub


Merci,

Doudo
 

Pièces jointes

Re : empecher saisi de doublon

Bonjour Doudo,

Comme tu présente les choses, tu ne veux pas EMPECHER la saisie d'un doublon, mais plutôt PREVENIR l'utilisateur qu'il vient de saisir un doublon (par le biais de la MsgBox).

Si oui, voici ci-dessous une macro qui te conviendra :
Private Sub Worksheet_Change(ByVal Target As Range)
' Macro enregistrée le 13/03/2012 par Excel-lent

If Target.Column <> 3 Then Exit Sub

If Application.CountIf(Feuil1.Range("J2:J" & [J2].End(xlDown).Row), Cells(Target.Row, 1) & Cells(Target.Row, 3)) > 1 Then
MsgBox "Numéro de 'sous plan' déjà existant"
End If

End Sub

Macro à placer dans la Feuil1 et non pas dans un module.

Si tu souhaite empêcher la saisie d'un doublon, il te suffit de rajouter une ligne de code pour effacer le numéro de "sous plan" que vient de saisir l'utilisateur.

Ce qui donnerais :
Private Sub Worksheet_Change(ByVal Target As Range)
' Macro enregistrée le 13/03/2012 par Excel-lent

If Target.Column <> 3 Then Exit Sub

If Application.CountIf(Feuil1.Range("J2:J" & [J2].End(xlDown).Row), Cells(Target.Row, 1) & Cells(Target.Row, 3)) > 1 Then
MsgBox "Numéro de 'sous plan' déjà existant, donc supprimé"
End If

Range("C" & Target.Row).clearcontents

End Sub



Bonne après midi
 
Dernière édition:
Re : empecher saisi de doublon

Rebonjour Excel-lent

Au risque de paraitre exigeant, ta solution ne marche pas lorsque l'on saisie d'abord le sous plan et ensuite le budget...

J'AI DONC ESSAYE DE CHANGER :

If Target.Column <> 3 Then Exit Sub

PAR :

If Target.Column <> 1 OR 3 Then Exit Sub

ET PAR :

If (Not Target.Column = 1) Or (Not Target.Column = 3) Then Exit Sub

Mais cela ne fonctionne pas...Merci de m'éclairer à nouveau je ne pense pas que ça soit compliqué
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
776
Réponses
5
Affichages
907
Réponses
4
Affichages
730
Réponses
10
Affichages
661
Réponses
8
Affichages
390
Réponses
8
Affichages
778
Réponses
2
Affichages
526
Retour