Macro qui met en évidence les doublons

th39 Messages postés 6 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -

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

5 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     

    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
  2. th39 Messages postés 6 Statut Membre
     

    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     

    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
  4. th39 Messages postés 6 Statut Membre
     

    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    0
    1. th39 Messages postés 6 Statut Membre
       

      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
      1. ccm81 Messages postés 11033 Statut Membre 2 434 > th39 Messages postés 6 Statut Membre
         
        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