Macro recherche doublon sur date ne fonctionne pas

chris6999

XLDnaute Impliqué
Bonjour le forum

Avec l'aide du FORUM j'ai mis en place une macro d'alerte (msg box) lorsque la date saisie dans le colonne C est déjà connue dans la colonne.
Le problème c'est que le message s'affiche systématiquement quoi que l'on saisisse dans la cellule (que la date soit déjà connue ou non).
Quelqu'un pourrait-il me dire pourquoi cela ne fonctionne pas?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Collec As New Collection
Dim cell As Range

If Not Intersect([C7:C20000], Target) Is Nothing And Target.Count = 1 Then
' Sur changement dans la colonne C affiche un message d'alerte si date de naissance est déjà connue dans la base
For Each cell In Range("C7:C20000")
On Error GoTo GestionDesErreurs

If cell <> "" Then
Collec.Add cell, CStr(cell)
End If

On Error GoTo 0
Next
End If

GestionDesErreurs:
If Err = 457 Then
Err = 0
MsgBox "Cette date de naissance est déjà connue dans la base" & vbCr & "Vérifier qu'il n'existe pas de dossier enregistré pour la" & vbCr & "même personne."
Exit Sub
End If

End Sub


Je mets un fichier test en pièce jointe
Merci d'avance pour votre aide
Bonne journée à tous
 

Pièces jointes

  • test message date de naissance identique.xls
    23 KB · Affichages: 53
  • test message date de naissance identique.xls
    23 KB · Affichages: 55
  • test message date de naissance identique.xls
    23 KB · Affichages: 54

laetitia90

XLDnaute Barbatruc
Re : Macro recherche doublon sur date ne fonctionne pas

bonjour chris6999

mettre dans change!!!

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range, m As Object
 If Not Intersect([C7:C20000], Target) Is Nothing And Target.Count = 1 Then
 Set m = CreateObject("Scripting.Dictionary")
 For Each c In Range("c7", Cells(Rows.Count, "c").End(xlUp))
 m(c.Value) = m(c.Value) + 1
 If m(c.Value) > 1 Then _
 MsgBox "Cette date de naissance est déjà connue dans la base" & vbCr & "Vérifier qu'il n'existe pas de dossier enregistré pour la" & vbCr & "même personne."
 Next c
 End If
End Sub

eventuellement boucler sur un tablo plus rapide

Code:
t = Range("c7", Cells(Rows.Count, "c").End(xlUp))
 For Each c In t
 'ect...

ps passer par une collection bien moins rapide


bisous Pierre jean:):)
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Macro recherche doublon sur date ne fonctionne pas

Bonjour chris999

Pourquoi diable s'embarquer dans une gestion d'erreur !!!
Vois si cela te convient

Edit : Bises Laeticia
 

Pièces jointes

  • test message date de naissance identique.xls
    34.5 KB · Affichages: 54
  • test message date de naissance identique.xls
    34.5 KB · Affichages: 51
  • test message date de naissance identique.xls
    34.5 KB · Affichages: 56

chris6999

XLDnaute Impliqué
Re : Macro recherche doublon sur date ne fonctionne pas

Merci Laetitia et Pierr-jean

Vos solutions fonctionnent toutes le deux pour la recherche de doublon.

Par contre un pb demeure : pourquoi le suystème affiche t il systématiquement le message BOX dès que l'on clique dans la colle C.
Avant même qu'une donnée ne soit saisie

Cordialement
 

Discussions similaires

Réponses
49
Affichages
985

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA