Recherche doublons en VBA

  • Initiateur de la discussion Initiateur de la discussion Didier MAUCOTEL
  • 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

Didier MAUCOTEL

Guest
Salut le forum,

Malgré l'excellent dossier de @+Thierry sur le sujet, je n'ai pas réussi à bidouiller ses lignes pour mon problème.

Je m'explique :

A l'aide de la formule CONCATENER, je rempli une cellule à l'aide de 3 autres.
Je cherche à tester la présence d'un éventuel doublon dans la colonne concatener, automatiquement après la dernière saisie.

Jusqu'ici, je m'en sors à peu près. Là où ça se complique, c'est que la colonne concatenée, elle sera masquée dans ma version définitive !

Bon, j'espère avoir été clair....

Merci d'avance pour les tuyaux et les psites de travail

A +

mauco
 
Bonjour Didier, le Forum

Je ne saisis pas bien ta question ? que veux-tu tester ? si tu as la même valeur dans 2 ou 3 des colonnes concaténées ou bien la même valeur concaténée dans la colonne où se trouve ta formule de concaténation ?

Si c'est cette dernière possibilité, il te suffit de faire une boucle pour tester la présence de la valeur saisie dans la colonne...

Exemple tu as tes trois colonnes à concaténer de "A" à "C" et en colonne "D" tu as ta formule de concaténation.... en macro évènementielle à placer dans le Private Module de la feuille en question çà donnerait ceci (même si la colonne "D" est masquée) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ligne As Integer
Dim Plage As Range, Cell As Range

If Application.Intersect(Target, Range("A:C")) Is Nothing Then Exit Sub
Ligne = Target.Row

Set Plage = Me.Range("D1😀" & Me.Range("D65536").End(xlUp).Row)

    For Each Cell In Plage
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Cell.Address <> Cells(Ligne, 4).Address Then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Cell = Cells(Ligne, 4) Then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox "Doublon Détecté en Ligne " & Cell.Row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
&nbsp;&nbsp;&nbsp;&nbsp;Next


End Sub

Bon Appétit
@+Thierry
 
Bonjour Dan, re Didier, le Forum

Je ne t'avais pas vu en rédigeant ma réponse Dan, j'en profite pour te saluer.

Pas mal du tout ta proposition sans macro basée simplement sur "=COUNTIF(B:B,B16)=1" en liste de validation et en en format conditionnel.

Bon Appétit
@+Thierry
 
Re Salut Dan

Oui, pour Didier, bien qu' il avait précisé qu'il le voulait en VBA dans son sujet, mais je trouve sympa et simple d'emploi ta solution, Dan.

Je file déjeuner, bon app à tous et toutes
@+Thierry
 
Salut Dan, salut Thierry

Merci à vous les gars pour vos solutions.

Oui Thierry, c'est bien la deuxième proposition qui est la bonne...tes lignes fonctionnent impec.
La formule de Dan est excellente également ; comme je suis dans le VBA depuis 2 mois (grâce ou à cause de ce site) je cherche toutes mes solutions ainsi...sans penser à plus simple.

Encore merci à vous deux

Mauco

PS : je suis un peu en retard dans les réponses, j'ai 10 heures de décalage avec la france !
 
- 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

D
  • Question Question
Réponses
2
Affichages
1 K
Didier MAUCOTEL
D
Retour