vérifier les doublons et les localiser

  • Initiateur de la discussion Initiateur de la discussion 2b7a
  • 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 !

2b7a

XLDnaute Occasionnel
Bonjour à toutes et tous,

J'ai un problème de doublons
Je reçois des factures chaque mois avec des noms de clients.
Il y a des doublons non seulement dans la facture même mais souvent dans les factures précédentes
Il faut donc que je revienne sans arrêt sur les anciennes factures

Quelle formule pourrait m'aider à compter les doublons et à déterminer dans quelle facture ils sont ?

... je vous joins un exemple

D'avance, merci pour votre aide.
 

Pièces jointes

Re : vérifier les doublons et les localiser

Bonjour,

Voir PJ

Objet dictionary

Code:
Sub GroupColor()
  Set champ = Range("C6:C" & [C65000].End(xlUp).Row)
  champ.Interior.ColorIndex = xlNone
  Set d = CreateObject("Scripting.Dictionary")
  Set d2 = CreateObject("Scripting.Dictionary")
  For Each c In champ
    d.Item(c.Value) = d.Item(c.Value) + 1
    d2.Item(c.Value) = d2.Item(c.Value) & CStr(c.Row) & "-"
  Next c
  champ.ClearComments
  For Each c In champ
    If d.Item(c.Value) > 1 Then
       c.Interior.ColorIndex = (Application.Match(c.Value, d.keys, 0) + 2) Mod 55
       c.AddComment
       temp = c.Value
       c.Comment.Text Text:=Left(d2.Item(temp), Len(d2.Item(temp)) - 1)
       c.Comment.Shape.Left = c.Offset(, 1).Left + 30
       c.Comment.Shape.Top = c.Offset(, 1).Top + 3
       c.Comment.Shape.TextFrame.AutoSize = True
       c.Comment.Visible = True
     End If
   Next c
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : vérifier les doublons et les localiser

Bonjour,

Voir PJ

Objet dictionary

Code:
Sub GroupColor()
  Set champ = Range("C6:C" & [C65000].End(xlUp).Row)
  champ.Interior.ColorIndex = xlNone
  Set d = CreateObject("Scripting.Dictionary")
  Set d2 = CreateObject("Scripting.Dictionary")
  For Each c In champ
    d.Item(c.Value) = d.Item(c.Value) + 1
    d2.Item(c.Value) = d2.Item(c.Value) & CStr(c.Row) & "-"
  Next c
  champ.ClearComments
  For Each c In champ
    If d.Item(c.Value) > 1 Then
       c.Interior.ColorIndex = (Application.Match(c.Value, d.keys, 0) + 2) Mod 55
       c.AddComment
       temp = c.Value
       c.Comment.Text Text:=Left(d2.Item(temp), Len(d2.Item(temp)) - 1)
       c.Comment.Shape.Left = c.Offset(, 1).Left + 30
       c.Comment.Shape.Top = c.Offset(, 1).Top + 3
       c.Comment.Shape.TextFrame.AutoSize = True
       c.Comment.Visible = True
     End If
   Next c
End Sub

JB

Merci pour ta réponse Boigontier
Mais hélas, politique d'entreprise .... pas de macros ; uniquement des formules
tu peux retranscrire en formule ?
 
- 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

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
11
Affichages
730
Retour