repérer les doublons en VBA....à partir de la Cellule active

océanne

XLDnaute Occasionnel
Bonjour le forum,

Je viens sur un sujet de nombreuses fois abordées sur ce forum, il s'agit des doublons.

Je souhaiterai que dans une plage de cellule, les doublons de la valeur de la cellule active puissent être mis en évidence. (sur ce sujet bien particulier, j'avoue n'avoir pas trouvé)

Je vous joins un petit fichier avec l'illustration.

Merci d'avance à celui ou celle qui pourra me venir en aide.

O.
 

Pièces jointes

  • Identifier doublons selon cellule active.xlsm
    11.1 KB · Affichages: 43

david84

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonsoir,
à tester :
Code:
Sub test()
Dim Pl As Range, c As Range
Set Pl = ActiveCell.CurrentRegion
Pl.Interior.ColorIndex = none
For Each c In Pl
    If c Like ActiveCell.Value Then c.Interior.ColorIndex = 7
Next c
End Sub
A+
 

Modeste geedee

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonsour®

:rolleyes: tout en automatique ...
1- proc événementielle :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
+
2 - Nom défini : Active
fait référence à : =CELLULE.ACTIVE()
+
3 - Mise en forme conditionnelle
 

Pièces jointes

  • Capture2.JPG
    Capture2.JPG
    33.2 KB · Affichages: 112
  • Capture3.JPG
    Capture3.JPG
    53.8 KB · Affichages: 110
  • Capture1.JPG
    Capture1.JPG
    41.1 KB · Affichages: 84
  • Capture2.JPG
    Capture2.JPG
    33.2 KB · Affichages: 103
  • Capture3.JPG
    Capture3.JPG
    53.8 KB · Affichages: 113
  • Capture1.JPG
    Capture1.JPG
    41.1 KB · Affichages: 71
  • Capture2.JPG
    Capture2.JPG
    33.2 KB · Affichages: 83
  • Capture3.JPG
    Capture3.JPG
    53.8 KB · Affichages: 99
  • Capture1.JPG
    Capture1.JPG
    41.1 KB · Affichages: 80

DoubleZero

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonjour, le Fil, le Forum,

Une autre suggestion en pièce jointe, dans laquelle les "doublons" sont colorés et comptabilisés au sein d'un commentaire.

A bientôt :)
 

Pièces jointes

  • 00 - océanne - Doublons colorer + comptabiliser.xls
    43.5 KB · Affichages: 53

job75

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonjour océanne, David, Modeste geedee, DoubleZero :)

Sur ces fichiers, création d'une MFC en VBA, soit par simple clic, soit par double-clic.

A+
 

Pièces jointes

  • Identifier doublons par simple clic(1).xls
    31 KB · Affichages: 84
  • Identifier doublons par double-clic(1).xls
    32 KB · Affichages: 48

job75

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Re,

Avec les versions (1) il peut arriver que la MFC ne soit pas effacée de toutes les cellules.

Ce qui alourdirait inutilement le fichier.

Il vaut donc mieux utiliser ces versions (2) avec :

Code:
Cells.FormatConditions.Delete 'RAZ
A+
 

Pièces jointes

  • Identifier doublons par simple clic(2).xls
    26 KB · Affichages: 39
  • Identifier doublons par double-clic(2).xls
    33 KB · Affichages: 32

job75

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Re,

DoubleZero a eu la gentillesse de me prévenir que mes solutions ne fonctionnent pas correctement sur Excel 2007.

Effectivement je les ai créées sur Excel 2010.

Sur Excel 2003 elles ne fonctionnent pas non plus.

Alors voici une version (3) qui fonctionne sur Excel 2003, mais pas sûr pour Excel 2010...

Edit : eh non, je viens de tester, sur Excel 2010 cette nouvelle version ne fonctionne pas !

A+
 

Pièces jointes

  • Identifier doublons par double-clic(3).xls
    33 KB · Affichages: 38
  • Identifier doublons par simple clic(3).xls
    31 KB · Affichages: 35
Dernière édition:

job75

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonjour DoubleZero, le forum,

Merci pour ton retour, cette version (4) fonctionnera donc sur toute version.

Comme j'aime bien ta mise en place d'un commentaire, je l'ai ajoutée :)

A+
 

Pièces jointes

  • Identifier doublons par double-clic(4).xls
    45 KB · Affichages: 31
  • Identifier doublons par simple clic(4).xls
    48.5 KB · Affichages: 32
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonsour®
Bonjour DoubleZero, le forum,

Merci pour ton retour, cette version (4) fonctionnera donc sur toute version.

Comme j'aime bien ta mise en place d'un commentaire, je l'ai ajoutée :)

A+

:cool: attention toutefois à l'utilisation de :
Code:
Cells.FormatConditions.Delete 
Cells.ClearComments
qui est bien brutale à mon goût... :mad:
vis a vis des commentaires et MEFC existant par ailleurs dans la feuille ...
:p restreindre cette instruction à la plage concernée par la recherche de doublons
(Me.UsedRange # Me.plageRecherche)
 

job75

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonjour Modeste geedee,

Bien d'accord, si nécessaire il faut préciser les plages à traiter.

Voir par exemple ces fichiers (5).

Nota : j'avais oublié d'effacer la MFC et le commentaire au début de la macro Worksheet_BeforeDoubleClick.

A+
 

Pièces jointes

  • Identifier doublons par double-clic(5).xls
    48.5 KB · Affichages: 31
  • Identifier doublons par simple clic(5).xls
    51.5 KB · Affichages: 37
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Bonsour®
Bonjour Modeste geedee,

Bien d'accord, si nécessaire il faut préciser les plages à traiter.

Voir par exemple ces fichiers (5).

Nota : j'avais oublié d'effacer la MFC et le commentaire au début de la macro Worksheet_BeforeDoubleClick.

A+

:cool:
pour ma part j'en étais là :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Range("B4:E10")
     .FormatConditions.Delete
    .ClearComments
End With
  
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target = "" Then Exit Sub
Dim n&, v, a1$, a2$
Cancel = True
With Range("B4:E10")
    n = Application.CountIf(.Cells, ActiveCell)
  '-------------MEFC
    If n > 1 Then
            v = Val(Application.Version)
            a1 = IIf(v > 12, .Cells(1), ActiveCell).Address(0, 0) 'reférence relative
            a2 = ActiveCell.Address 'référence absolue
            .FormatConditions.Add xlExpression, _
            Formula1:="=(" & a1 & "<>"""")*(" & a1 & "=" & a2 & ")"
            .FormatConditions(1).Interior.Color = vbYellow 'jaune
    End If
    ' -------------------------commentaire
    With ActiveCell.AddComment(IIf(n = 1, "valeur unique", n & " doublons"))
            With .Shape.TextFrame
                .Parent.Fill.ForeColor.RGB = vbBlack 'fond noir
                .Characters.Font.Size = 11
                .Characters.Font.ColorIndex = 2 'blanc
                .Characters.Font.Bold = True 'gras
                .AutoSize = True
            End With
            .Visible = True
    End With
  
End With
End Sub
 

job75

XLDnaute Barbatruc
Re : repérer les doublons en VBA....à partir de la Cellule active

Re Modeste geedee,

Oui c'est très bien aussi.

Mais comme précisé dans mon post précédent il faut effacer au début de la macro BeforeDoubleClick :

Code:
Cancel = True
With Range("B4:E10")
    .FormatConditions.Delete
    .ClearComments
sinon la macro beugue si l'on fait plusieurs*** doubles-clics successifs sur la même cellule.

Edit : *** 2 doubles-clics pour le commentaire, 4 doubles-clics pour la MFC (sur Excel 2003 limité à 3 conditions).

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 107
Messages
2 085 358
Membres
102 874
dernier inscrit
Petro2611