Macro qui met en évidence les doublons

Fermé
th39 Messages postés 6 Date d'inscription mardi 20 septembre 2022 Statut Membre Dernière intervention 21 septembre 2022 - 20 sept. 2022 à 11:40
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 21 sept. 2022 à 15:01

Bonjour je suis a la recherche d'une macro qui met en évidence les doublons sur des colonnes en fonction de la date et du nom de la ligne , exemple en colonne B et C (fusionné) j'ai la date du 21/09/2022, je souhaiterais identifier les doublons sur ces deux colonnes sur toutes les lignes avec l'intitulé "ressources" dans la colonne A

Merci de votre aide

A voir également:

5 réponses

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 426
20 sept. 2022 à 14:43

Bonjour

Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans http://cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
   en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".

Cdlmnt

0
th39 Messages postés 6 Date d'inscription mardi 20 septembre 2022 Statut Membre Dernière intervention 21 septembre 2022
20 sept. 2022 à 15:00

bonjour , 

ci joint le lien pour le fichier

https://www.cjoint.com/c/LIum3fmFWNz

l'idée est de faire ressortir les doublons dans les colonnes date , pour éviter d'avoir des doublons sur les cases ressources 

Merci de votre aide

0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 426
20 sept. 2022 à 15:26

Ton fichier ne contient pas grand chose, en particulier rien dans les lignes "ressource".

Envoies un fichier avec quelques données (disons une vingtaine) et expliques ce que tu attends de la macro (comment lancer la macro, comment mettre en évidence ces doublons, etc ...)

Cdlmnt

0
th39 Messages postés 6 Date d'inscription mardi 20 septembre 2022 Statut Membre Dernière intervention 21 septembre 2022
20 sept. 2022 à 15:48

https://www.cjoint.com/c/LIunROveOhz

en fait il faut distingué les doublon sur la même date , pour ne pas affecter les op sur deux taches différentes le même jour

exemple dans le fichier le 22/09/2022 Dupond a est affecté a l'habillage et l'emballage le même jour , donc cela doit ressortir pourquoi pas en écriture noir sur fond jaune, idéalement cette macro sera lancer par un bouton

merci de ton aide 

0

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

Posez votre question
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 426
20 sept. 2022 à 16:43
0
th39 Messages postés 6 Date d'inscription mardi 20 septembre 2022 Statut Membre Dernière intervention 21 septembre 2022
21 sept. 2022 à 07:46

Bonjour ccm81,

je n'arrive pas a ouvrir le fichier mon système bloque l'exécution des macro, peut tu m'envoyer le code que je le copie cole 

merci

0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 426 > th39 Messages postés 6 Date d'inscription mardi 20 septembre 2022 Statut Membre Dernière intervention 21 septembre 2022
Modifié le 21 sept. 2022 à 15:04
Option Explicit

Const lidat = 1
Const sep = "-"

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim co As Long, li As Long, lifin As Long
Dim dico As Object, cle As String, valeur As Long, cles, valeurs
Dim nucle As Long, nbcles As Long, t, nt As Long, k As Long
Dim coul As Long
li = Target.Row
If Target.Cells(1, 1) = "" Or li <> lidat Then Range("A1").Select: Exit Sub
co = Target.Column
' enlever les couleurs
Columns(co).Interior.ColorIndex = xlNone
Columns(co + 1).Interior.ColorIndex = xlNone
lifin = Cells(Rows.Count, 2).End(xlUp).Row
' dictionairee nom,liste_adresses
Set dico = CreateObject("scripting.dictionary")
For li = lidat + 2 To lifin Step 2
  'cellule de gauche
  cle = Trim(Cells(li, co).Cells(1, 1).Value)
  If cle <> "" And Not IsDate(cle) Then
    If dico.exists(cle) Then
      dico(cle) = dico(cle) & sep & Cells(li, co).Address
    Else
      dico.Add cle, Cells(li, co).Address
    End If
  End If
  'cellule de droite (si pas date)
  If Not IsDate(Cells(li, co).Cells(1, 1).Value) Then
    cle = Trim(Cells(li, co + 1).Value)
    If cle <> "" Then
      If dico.exists(cle) Then
        dico(cle) = dico(cle) & sep & Cells(li, co + 1).Address
      Else
        dico.Add cle, Cells(li, co + 1).Address
      End If
    End If
  End If
Next li
cles = dico.keys
valeurs = dico.items
nbcles = dico.Count
coul = 3
' coloriage des doublons
For nucle = 0 To nbcles - 1
  t = Split(valeurs(nucle), sep)
  nt = UBound(t)
  If nt > 0 Then
    For k = 0 To UBound(t)
      Range(t(k)).Interior.ColorIndex = coul
    Next k
  coul = coul + 1
  End If
Next nucle
Cells(lidat, co + 2).Cells(1, 1).Select
End Sub

à mettre dans le module de la feuille à traiter

Clic-clic en ligne 1 sur une date pour lancer la macro

Cdlmnt

0