Ajouter un suffixe aus doublons

KyFranRD

XLDnaute Occasionnel
Bonjour

Je désire savoir comment détecter les doublons dans une colonne lors de la saisie, par exemple dans la colonne B des lignes 10 à 20. Que cette recherche de doublons se fasse à chaque saisie. Donc dans cette exemple à B2, puis B3,B4,B5,B6,B7,B8,B9 et B10.

Et que lorsqu'un doublons est détecté, cela ajoute un suffixe.

Donc si je saisie 100 en B7, et que ce chiffre existe déjà en B5, que cela inscrive 100* en B5 et 100 en B7.

Je ne pense pas qu'un fichier soit nécessaire mais si besoin.....

Merci à l'avance
 

job75

XLDnaute Barbatruc
Re : Ajouter un suffixe aus doublons

Bonjour KyFranRD, Jean-Marie, Patrick,

Pour rajouter l'étoile, il va falloir passer par une procédure événementielle et Countif en VBA.

C'est vrai sur Excel 2003 et versions antérieures.

Mais sur Excel 2010 une MFC peut le faire, voir fichier joint.

Je ne sais pas sur Excel 2007.

A+
 

Pièces jointes

  • MFC(1).xlsx
    9.9 KB · Affichages: 93
  • MFC(1).xlsx
    9.9 KB · Affichages: 92
  • MFC(1).xlsx
    9.9 KB · Affichages: 91

job75

XLDnaute Barbatruc
Re : Ajouter un suffixe aus doublons

Re,

Ah oui, seule la 1ère cellule doublon de la colonne doit être modifiée.

Formule de la MFC sur la colonne B :

Code:
=ET(NB.SI($B:$B;$B1)>1;LIGNE()=EQUIV($B1;$B:$B;0))
Fichier (2).

A+
 

Pièces jointes

  • MFC(2).xlsx
    10.2 KB · Affichages: 86
  • MFC(2).xlsx
    10.2 KB · Affichages: 82
  • MFC(2).xlsx
    10.2 KB · Affichages: 94

job75

XLDnaute Barbatruc
Re : Ajouter un suffixe aus doublons

Re,

Voici l'équivalent en VBA pour toutes versions Excel.

Dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B:B]) Is Nothing Then
  Etoile [B:B], "General", "General"" *"""
ElseIf Not Intersect(Target, [D:D]) Is Nothing Then
  Etoile [D:D], "General", "@"" *"""
End If
End Sub

Sub Etoile(plage As Range, format1$, format2$)
Set plage = Intersect(plage, plage.Parent.UsedRange)
If plage Is Nothing Then Exit Sub
Dim cel As Range, test As Boolean, r As Range
For Each cel In plage
  If cel <> "" Then
    test = Application.CountIf(plage, cel) > 1 And _
    cel.Row = plage.Row - 1 + Application.Match(cel, plage, 0)
    If test Then Set r = Union(cel, IIf(r Is Nothing, cel, r))
  End If
Next
plage.NumberFormat = format1
If Not r Is Nothing Then r.NumberFormat = format2
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Format étoile toutes versions(1).xls
    48.5 KB · Affichages: 99

Victor21

XLDnaute Barbatruc
Re : Ajouter un suffixe aus doublons

Bonsoir le fil, job75.

Je signale pour info un comportement erratique du filtre automatique :
Exemple : 100, 101 et 101 * dans la liste.
En sélectionnant 100, 101 et 101 *, 3 lignes s'affichent Normal
En sélectionnant 101 et 101*, seule la ligne contenant 101 s'affiche Surprenant, puisque ce n'est qu'un format
En sélectionnant 101, la ligne contenant 101 s'affiche Normal
En sélectionnant 101 * aucune ligne ne s'affiche Normal, mais surprenant que le filtre ait détecté cette valeur.
:)
 

job75

XLDnaute Barbatruc
Re : Ajouter un suffixe aus doublons

Re Patrick,

Oui le filtre automatique ne fonctionne pas correctement sur les nombres (ou les textes) formatés.

Avec le filtre avancé (élaboré) il n'y a pas ce problème, mais le format n'est bien sûr pas reconnu.

A+
 

KyFranRD

XLDnaute Occasionnel
Re : Ajouter un suffixe aus doublons

Merci job75

Cela fonctionne, à part 2 petits soucis.

1 >>> Peux-tu faire en sorte que l'étoile apparaisse sur tous les doublons d'un nombre sauf le dernier saisi?

2 >>> J'ai dans mon fichier, par commodité, fait un renvoi des cellules lignes B en G. Comment se fait-il que le renvoi m'indique 100 en G et 100 * en B????

Merci
 

david84

XLDnaute Barbatruc
Re : Ajouter un suffixe aus doublons

Re
David j'ai visionné le site veriti V 3, mais ne vois pas trés bien comment l'adapter à mon cas??
L'idée est de tester si tu as la possibilité d'insérer l'étoile dans ta MFC lorsque tu accèdes à la boîte de dialogue Format de cellule (Format>Nombre). Si l'étoile ne t'es pas proposée dans la version 2003, tu peux peut-être l'insérer en suivant les explications fournies.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm