Recherche doublons

  • Initiateur de la discussion Didier MAUCOTEL
  • Date de début
D

Didier MAUCOTEL

Guest
Salut le forum,

Voici quelques lignes de l'excellent @+Thierry permettant de rechercher des doublons dans une liste et d'afficher un message :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ref As String
Dim Cell As Range, Plage As Range
Dim L As Integer
On Error Resume Next
If Application.Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub
Ref = Target.Value
L = Target.Row
Set Plage = Range("G6:G" & L - 1)
For Each Cell In Plage
If Cell = Ref Then
MsgBox "Le nom de l'enseignant(e) est déjà inscrit dans une autre école !!" & Chr(13) & "Si c'est un changement de poste, n'oubliez de l'effacer de la précédente école." & Chr(13) & "Si c'est une erreur, vérifiez vos informations." & Cell.Address, vbCritical, "OPEP 2004 vous informe..."
Cell.Activate
Exit Sub
End If
Next Cell
End Sub

Ceci permet de reconnaitre des doublons pour une saisie en fin de colonne.
Je souhaiterais que la recherche de doublons se fasse quelque soit la ligne où se fait la saisie (apparemment, c'est la ligne "Set Plage = Range("G6:G" & L - 1)").

Merci pour votre aise.

Mauco
 
@

@+Thierry

Guest
Bonsoir Didier, le Forum

Merci pour le compliment ! maintenant je suis tout rouge lol...

Le problème est simple, c'était voulu, je définie la Plage en fonction d'une saisie à la suite logique ligne à ligne ... là apparemment tu veux saisir depuis n'importe quelle ligne...

Il faut transformer comme suit :
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ref As String
Dim Cell As Range, Plage As Range
On Error Resume Next
If Application.Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub
Ref = Target.Value
Set Plage = Range("G6:G" & Range("G65536").End(xlUp).Row)
For Each Cell In Plage
If Cell = Ref Then
If Cell.Row <> Target.Row Then
MsgBox "Le nom de l'enseignant(e) est déjà inscrit dans une autre école !!" & Chr(13) & "Si c'est un changement de poste, n'oubliez de l'effacer de la précédente école." & Chr(13) & "Si c'est une erreur, vérifiez vos informations." & Cell.Address, vbCritical, "OPEP 2004 vous informe..."
Cell.Activate
Exit Sub
End If
End If
Next Cell
End Sub

Bon Dimanche
@+Thierry
 
D

Didier MAUCOTEL

Guest
Super Thierry !

Merci beaucoup pour la qualité et la rapidité de la réponse.

Ca marche du tonnerre !!

Je débute en Visual Basic (début de la semaine !) et j'ai vu tes Userforms... très intéressantes ...
J'ai une idée trés précise de ce que je souhaite et je trouve des bribes de programmes un peu partout pour résoudre mon problème. Je ne sais pas si la méthode et bonne, mais bcp de pbs de syntaxe.

Je ferais peut-être appel au forum si mes prochaines nuits sont trop "blanches".

Mauco
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 069
Membres
103 453
dernier inscrit
Choupi