Recherche doublons sur une feuille excel

Résolu
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je vous prie de bien vouloir m'aider sur un souci concernant un fichier excel 2003 dont une feuille contient des champs et une colonne qui contient des numeros. Je voudrai savoir au moment de la saisie du numero, il me donne si existe les enregistrements de ce numero pour eviter de le retaper et par un simple copie/coller ses donnees peut faire çà.
N.B: Ce travail peut se faire dans une autre feuille
Je vous mets ci joint mon fichier pour bien illustrer mon souci.
https://www.cjoint.com/?dxkShIjZvF
Merci d'avance pour toute reponse.
Cordialement
A voir également:

50 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Je n'avais tout compris, en fait si tu saisis un doublon, tu veux une macro qui copie les valeurs de B à O de la première valeur et idem en J

colles ce code sur la propriété de la feuille concernée et on en reparle pour adapter et raccourcir ce code

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A2:A100"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("A2:A100")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then

Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 14)).Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste

End If
Next c
End If
If Not Intersect(Range("J2:J100"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("J2:J100")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then

Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 2)).Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste

End If
Next c
End If
Application.CutCopyMode = False
[A1].Select
End Sub
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonsoir

un petit modèle pour faire joujou, rien à voir avec les propositions de Myke sur lesquelles j'aurais du mal à m'aligner.... tellement elles sont simples!

Myke: n'oublie pas un petit paragraphe dans les messages ci dessus, à savoir que la ligne à éditer peut se trouver sur une autre feuille.
Bonne soirée à vous deux
Crdlmnt

http://www.cijoint.fr/cjlink.php?file=cj201003/cijhIob4VG.xls
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour VAUCLUSE et MIKE,

Je vous remercie infinement pour vos efforts et soutien.

- M. MIKE : j'a vu votre fichier et c'est un travail qui merite une felicitation, effectivement ce que je veux mais il y a un petit probleme de decalage de la cellule copiee, je ne sais pas si vous avez teste votre code : Je vous mets le fichier ci joint pour voir le souci. https://www.cjoint.com/?dAhwanRWmG
Merci d'avance.

- M. VAUCLUSE : Je vous remercie infinement de ce que vous m'avez fait, c'est vraiment un travail extraordinaire et qui merite une felicitation. Je vais lire bien et je vous reponds plustard.
Merci d'avance.
Cordialement
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Il suffisait de comprendre tes attentes, mais dès le départ tu parlais de détection de doublons, du moins pour ma part je n'avais pas compris que tu voulais les dupliquer.

Je teste tous mes codes du moins les plus complexes avant de les mettre sur une discussion, et je puis t'assurer qu'il est opérationnel à 100 pour 100.

Le décalage vient du fait que sur ton système la fonction déplacer la sélection après validation est activée, (cette option déplace d'une cellule active vers le bas après validation ou entrée).

Soit tu la désactive Outils/Option/onglet Modification et décocher Déplacer après validation
Soit j'en tiens compte dans le code et je te le modifierais après ta réponse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour M. MIKE,
Effectivement c'est operationnel 100%, j'aimerai bien de le modifier dans le code.
Je m'excuse si je prends de votre temps.
Merci d'avance
Cordialement
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour M. VAUCLUSE,
J'ai teste votre fichier et j'ai rencontre un probleme lorsque j'ai saisie un nouveau NumDos et j'ai valide par OK, le resultat dans LISTE il me donne #N/A sur toute la ligne. et les donnees de la cellule B1 et C1 sont effacees

Permettez moi de vous poser quelque question concernant l'exploitation de cette base :
1- Est ce que vous pouvez me faire la consultation des donnees par ces criteres
* Nombre AN,CG,DP et RN se trouvant dans la colonne C
* Nombre A, C, E et D se trouvant dans la colonne B
* Consultation des donnees par interval de date càd entre deux dates soit de la colonne Journee où bien Effet où bien Ech.
2- Je voudrai que ces donnees soient exporter dans une nouvelle feuille nommee "Statistique"

Merci d'avance.
Cordialement.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
petit oubli dans la macro qui enregistre la ligne, elle ne prenait pas la colonne Q sur la feuille collect
De même j'ai rectifiè la formule en Q1 sur la même feuille.(car elle affichait 0 pour le premier type production entré)et une erreur de calage de la colonne Q sur les lignes déja existantes
Ca devrait aller mieux ici.
http://www.cijoint.fr/cjlink.php?file=cj201003/cijYtdm3UT.xls
ce fichier présente en exemple dans la feuille entrée ce qui se passe lorsque l'on rentre en PT un code différent de celui qui s'affiche automatiquement (35DH remplacé par 660,78DH

Par contre:
"et les données de la cellule B1 et C1 sont effacées"
seule la feuille "Collect", masquée utilise less cellules B1 et C1 . Je ne vois pas ce que vous voulez dire!
Pour la feuille statistique, tout est possible si vous me dites plus précisemment ce que vous souhaitez.
Pouvez vous par exemple mettre à disposition un fichier avec juste une feuille présentant l'organisation des tableaux que vous voulez obtenir.

Crdlmnt
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

colles ce code dans les propriétés de la feuille et tiens moi au courant


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("A2:A1000")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then

Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 14)).Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
Exit Sub
End If
Next c
End If
If Not Intersect(Range("J2:J1000"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("J2:J1000")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then

Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 2)).Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
Exit Sub
End If
Next c
End If
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
End Sub
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Rebonjour M. MIKE,
Merci pour votre reponse.
Je vous transmets ci joint le fichier pour voir ce qu'il m'a donne comme resultat lorsque j'ai saisi une donnee existee avant.
https://www.cjoint.com/?dAll702cg2
Cordialement
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Rebonjour M. VAUCLUSE,
Merci bien,
Votre fichier est operationnel mais le seul ambiguite c'est que l'exportation des donnees vers feuille collect se fait bien mais vers la feuille LISTE me donne #N/A ?
Je ne sais pas où est le probleme !?
Cordialement.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Re
pouvez vous, si vous souhaitez continuer dans la configuration que je propose, me transmettre un fichier avec le défaut que vous signaler.

Je dis si vous souhaitez car il me semble que la solution proposée par Myke est plus efficace et mieux adaptée.

en tout cas, elle autorise surement un fichier plus léger!.. et donc moins limité en capacité.
Cela vaut il la peine de continuer dans la voie que je vous ai proposée. Si oui, mettez moi le fichier sur cijoint avec le défaut.

Si ce n'est pas pour l'utiliser, rien ne sert de continuer.Je ne suis pas en concurrence avec Myke et arrèter là ne me gène pas.

Bien cordialement
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Ca vient de tes options, vas dans Outil/Option/Onglet Modification tu dois avoir la case Déplacer la sélection après validation cocher et le sens Droite
sélectionnes bas


A part que tu souhaites avoir le déplacement après validation à droite dans ce cas j'apporterai une modif au code
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Re M. MIKE,
C'est gentil de votre part, effectivement j'ai la modification et j'ai oublie de la changer, Votre fichier est operationnel 100%.
Merci bien,
M. MIKE j'aimerai exploiter cette base pour faire des consultations, est ce que vous pouvez m'aider ?
Cordialement
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Alors si le code est bon, remplaces le par ce dernier ou j'ai inclu un détecteur d'erreur dans le cas ou tu serait amené à supprimer ou effacer des lignes

Pour le reste, j'ai assez peu de temps mais dis toujours

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo erreur
erreur:
If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("A2:A1000")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then
Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 14)).Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
Exit Sub
End If
Next c
End If
If Not Intersect(Range("J2:J1000"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("J2:J1000")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then
Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 2)).Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
Exit Sub
End If
Next c
End If
Application.CutCopyMode = False
sortie:
Exit Sub
ActiveCell.Offset(1, -1).Select
End Sub
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Re,
Merci bien MIKE, Votre travail est tres efficace.
Je vous tiens au courant des nouvelles pour l'exploitation de cette de donnee base, comme je vous dis au dernier message.
Abientôt
Cordialement
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
J'ai rajouté une ligne, au code afin que la cellule se positionne à la ligne inférieure pour préparer une nouvelle saisie
Rectifies le code ou copies celui ci

N'oublies pas de mettre le statut de la discussion en résolu, en haut de la discussion

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo erreur
erreur:
If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("A2:A1000")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then
Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 14)).Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -1).Select
Exit Sub
End If
Next c
End If
If Not Intersect(Range("J2:J1000"), Target) Is Nothing And Target.Count = 1 Then
For Each c In Range("J2:J1000")
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then
Range(Range(c.Address).Offset(0, 1), Range(c.Address).Offset(0, 2)).Copy
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -1).Select
Exit Sub
End If
Next c
End If
Application.CutCopyMode = False
sortie:
Exit Sub
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour M. MIKE,
Je vous remercie infinement pour votre soutien à moi, ainsi que M.VAUCLUSE,
J'ai reçu votre fichier c'est operationnel 100%.
MIKE j'ai quelque proposition cernant mon fichier pour bien l'exploiter, est ce que je declare que ce sujet est maintenant resolu et on continue la discution de ce sujet où bien je mets le statut de cette discution en resolu et je pose une nouvelle question concernant ce fichier car j'ai besoin à faire des trucs dans ma base.
Merci d'avance pour votre aide et soutien.
Cordialement.
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Expliques ce que tu veux faire pour voir si c'est une suite logique à la discussion ou si c'est un sujet différent
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Re Mike,
Merci pour votre reponse,
Je voudrai exploiter ma base comme suit :
1- Faire une consultation par la colonne "Cat" càd afficher ma base qui ont par exemple A comme donnee.
2- Faire une consultation par un interval de date càd j'entre deux dates soit de la colonne Journee ou bien Effet ou Ech pour me donner les donnees de ma base plus les totaux des colonnes (PT,Com et M.regler)
3- Faire un bouton de recherche par critere (Nom, Prenom, NumPol,Num Dos)
J'aimerai que ce traitement se fait dans une nouvelle feuille du meme classeur (Production) nommee Consulatation
4- Je voudrai que chaque annee (2010, 2011, 2012 ...) soit dans un classeur.
Cordialement
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Dans le Week-end je te fais un topo, en grande partie tu peux traiter les deux première questions avec un filtre
La question 3 avec une sorte de RECHERCHEV multicritère dont la formule s'écrit différemment
Pour la question 4 il est possible d'écrire un code, mais un code est fait pour effectuer des actions répétitives ce qui ne semble pas être le cas donc j'opterais par une création de classeur et un copier ou couper/coller
0
abdou_Guend Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   4
 
Re Mike,

Merci pour votre attention et Bon week-end.
Pour la question 4, je voudrai que le code soit lier aussi pour chaque nouveau classeur creer càd pour 2011,2012 ...car ce classeur Production est destine pour cette annee 2010.
Cordialement
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Regardes le fichier joint et répond clairement sur la question 3 et 4

https://www.cjoint.com/?dClKFTLQ8O
0