[Résolu] Reconnaitre un doublon dans la saisie sur une même ligne

genus17

XLDnaute Nouveau
Bonsoir,
Je me permets de faire appel à vous, car j’ai un petit problème avec une macro que je veux modifier pour mon boulot,

J’ai donc une macro pour reconnaitre un doublon dans la saisie sur les colonnes.
Je voudrais la modifier pour lui faire reconnaitre un doublon dans la saisie sur une même ligne.
Mon tableau de saisie commence à partir de D6
Exemple : si j’ai le chiffre 11 en D6, et que je tape en R6, une box m’indique que j’ai un doublon et me demande si je veux le conserver si oui, il le garde et non il le supprime.
Bien sûr, si j’ai un même chiffre 11 est sur une autre ligne, je ne veux pas de message box.
Pouvez-vous me venir en aide sur cette macro ?

Merci pour votre aide et pour votre réponses.

Voilà la macro:
Dim Temoin As Boolean
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("D6:R100"), Target) Is Nothing And Target.Count = 1 Then 'zone de contrôle
Temoin = True
For Each c In Range("D6:R100") 'zone anti-doublons
If Target.Column And c.Value <> Empty Then
If c.Value = Target.Value And c.Row <> Target.Row And c.Value <> Empty Then
reponse = MsgBox("Doublon avec : " & c.Address & Chr$(10) & _
"Voulez-vous le garder ?", vbYesNo + vbInformation, "Détection doublon")
If reponse = vbNo Then
Target.Value = Empty
Temoin = False
Exit Sub
End If
Exit Sub
End If
End If
Next c
Temoin = False
End If
End Sub

Voila une demo de mon tableau, bien plus simple
 

Pièces jointes

  • 03 BT Conf org.xlsm
    31.7 KB · Affichages: 56
  • 03 BT Conf org.xlsm
    31.7 KB · Affichages: 61
  • 03 BT Conf org.xlsm
    31.7 KB · Affichages: 58
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonsoir Genus, bonsoir le forum,

Essaie comme ça :

Code:
Private Temoin As Boolean

Sub Worksheet_Change(ByVal Target As Range)
Dim l As Integer 'déclare la variable l (Ligne)
Dim r As Range 'déclare la variable r (Recherche)

'si le changement a lieu ailleurs que dans la plage D6:R100 ou si plusieurs cellules sélectionnées, sort de la procédure
If Intersect(Range("D6:R100"), Target) Is Nothing Or Selection.Rows.Count > 1 Then Exit Sub
'si la cellule est effacée ou si témoin est vraie, sort de la procédure
If Target.Value = "" Or Temoin = True Then Exit Sub
l = Target.Row 'définit la ligne l
Temoin = True 'attribue la valeur "vrai" à la variable Temoin
Set r = Rows(l).Find(Target.Value, , xlValues, xlWhole) 'définit la recherche
If Not r Is Nothing Then 'condition : si il existe au moins un doublon
    'si "Non" au message, la cellule editée est effacée
    If MsgBox("Doublon avec : " & r.Address & Chr$(10) & "Voulez-vous le garder ?", vbYesNo + vbInformation, _
        "Détection doublon") = vbNo Then Target.ClearContents
End If 'fin de la condition
Temoin = False 'reinitialise la variable Temoin
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonjour Genus, bonjour le forum,

En pièce jointe ton fichier v01 avec le code que je t'ai donné et qui fonctionne mais il supprime la recherche de doublon en colonne !
Si il te faut les deux recherches, en ligne et en colonne utilsie le fichier v02.
 

Pièces jointes

  • Genus_v01.xls
    58.5 KB · Affichages: 66
  • Genus_v01.xls
    58.5 KB · Affichages: 72
  • Genus_v01.xls
    58.5 KB · Affichages: 65
  • Genus_v02.xls
    59.5 KB · Affichages: 56

genus17

XLDnaute Nouveau
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonjour Robert,

Merci pour ton aide et pour les 2 fichiers.

Je recherche juste ligne pas ligne.

Il y a un problème que je ne trouve pas sur la macro du fichier "Genus_v01.xls"

La macro trouve un doublon entre I7 et J9, pourtant c'est pas la même ligne:eek:

Je vais mettre deux copies d'écrans dans un zip pour que cela passe.

Merci pour ton retour

Cordialement
 

Pièces jointes

  • Copies écrans.zip
    35.5 KB · Affichages: 26

Robert

XLDnaute Barbatruc
Repose en paix
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonsoir Genus, bonsoir le forum,

Le problème était qu'il considérait le doublon non pas avec une autre ligne mais avec lui-même. Le code ci-dessous corrige cette erreur :
Code:
Private Temoin As Boolean

Sub Worksheet_Change(ByVal Target As Range)
Dim l As Integer 'déclare la variable l (Ligne)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)

'si le changement a lieu ailleurs que dans la plage D6:R100 ou si plusieurs cellules sélectionnées, sort de la procédure
If Intersect(Range("D6:R100"), Target) Is Nothing Or Selection.Rows.Count > 1 Then Exit Sub
'si la cellule est effacée ou si témoin est vraie, sort de la procédure
If Target.Value = "" Or Temoin = True Then Exit Sub
l = Target.Row 'définit la ligne l
pa = Target.Address 'définit la première adresse pa
Temoin = True 'attribue la valeur "vrai" à la variable Temoin
Set r = Rows(l).Find(Target.Value, Target, xlValues, xlWhole) 'définit la recherche
If Not r Is Nothing And r.Address <> pa Then 'condition : si il existe au moins un doublon
    'si "Non" au message, la cellule editée est effacée
    If MsgBox("Doublon avec : " & r.Address & Chr$(10) & "Voulez-vous le garder ?", vbYesNo + vbInformation, _
        "Détection doublon") = vbNo Then Target.ClearContents
End If 'fin de la condition
Temoin = False 'reinitialise la variable Temoin
End Sub
 

genus17

XLDnaute Nouveau
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonsoir Robert,

Alors la chapeau, c'est génial, merci beaucoup pour ton aide.
Je ne compte plus tout le temp que je passé sur cette macro, je sais plus quoi dire.
Merci à nouveau, maintenant je vais voir pour comprendre ce code VBA
 

genus17

XLDnaute Nouveau
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Robert,

Excuse moi si je pousse le bouchon, mais j'aimerais savoir si il est possible de faire une modification de cette macro qui fonctionne.

J'ai mis dans le fichier en pièce jointe un autre onglet "M2".

Vu que je me retrouve avec M1 et M2, je voudrais avoir un message que me donne attention il y a un doublon.

Explication: en M1 en I6 nous avons le nombre 17 si je vais en M2 en I6 et que je tape 17 je voudrais avec le message "attention..

Ce contrôle, je le voudrais de la ligne 6 à la ligne 9.

C'est possible?

Merci de ton retour.

Cordialement
 

Pièces jointes

  • Genus_v01.xls
    98 KB · Affichages: 57
  • Genus_v01.xls
    98 KB · Affichages: 60
  • Genus_v01.xls
    98 KB · Affichages: 59

Robert

XLDnaute Barbatruc
Repose en paix
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonsoir Genus, bonsoir le forum,

Pas clair ton histoire... Tu souhaites que le message s'affiche quel que soit l'onglet édité (M1 ou M2), quand on édite M1 et il y a doublon sur M2, ou quand on édite M2 et le doublon se trouve dans M1 ?
le message s'affiche quand le doublon se trouve à la même adresse ou quand il se trouve sur la même ligne ?
J'attends tes réponses pour étudier la question...
 

genus17

XLDnaute Nouveau
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Re Robert,

Oui ta bien compris le problème pour:
Quand on édite M1 et il y a doublon sur M2, et quand on édite M2 et le doublon se trouve dans M1,
le message s'affiche quand le doublon se trouve à la même ligne.

Le nouveau contôle doit ce faire que entre la ligne 6 et la ligne 9.

En faite dans mon tableau d'origine, j'ai plusieurs onglets M1; C1; NP; C2 et M2.

Apres si cela est possble je ferais l'adaptation pour mon tableau pour faire un contrôle entre onglet:

M1=M2 de la ligne 6 à la ligne 9 idem, apres les autres lignes sont différentent dans le reste des 2 tableaux.
C1=C2 de la ligne 6 à la ligne 9 idem, apres les autres lignes sont différentent dans le reste des 2 tableaux.
NP seul

C'est un tableau pour la gestion des sérials des pièces fournisseurs.
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonjour Genus, bonsjour le forum,

La version 03 devrait correspondre à tes attentes...
 

Pièces jointes

  • Genus_v03.xls
    111.5 KB · Affichages: 52

genus17

XLDnaute Nouveau
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonjour Robert, bonjour le forum,

Je sais pas pour toi comment cela ce passe avec le fichier v03, mais cela ne marche pas tjrs chez moi.
Il y a pas un bug?
Sinon génial la solution, Bravo Robert
Si j'arrive à avoir cette marco sans bug, c'est le TOP!!:)
 
Dernière édition:

Fo_rum

XLDnaute Accro
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonjour,

une autre proposition avec une macro commune à 4 feuilles en plus des évènementielles.
Permet de contrôler une sélection de plus d'une cellule (par copier/coller par exemple).
 

Pièces jointes

  • CompareCellules2Feuilles.xls
    98 KB · Affichages: 35

genus17

XLDnaute Nouveau
Re : Reconnaitre un doublon dans la saisie sur une même ligne

Bonjour Fo_rum

Merci pour ton aide, mais dans ton exemple, il y a plus l'anti doublon sur la même ligne dans le même onglet, dommage
Il ne donne plus aussi l'adresse du doublon, c'est possible de faire la modification pour les deuxconditions?
- Avoir l'adresse des doublons
- Avoir l'anti doublon sur une même feuille
- Et tjrs avoir l'anti doublon entre les feuilles de D6; W9

Merci pour ton aide sur une autre macro
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia