Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Questions Doublons, triplons selon des conditions(VBA ou formule)

kondabalo

XLDnaute Nouveau
Bonjour à tous,

Je travaille actuellement sur une base contenant des individus et quelques informations les concernant. Il y à présence de doublons et jusque-là ce n’est pas l’identification des doublons qui pose un problème.

J’ai 7 colonnes en tout : Nom Complet ; Prénom ; Nom de Famille ; Téléphone ; Courier électronique ; Fonction et Nom de la Société

La colonne qui est le plus important pour moi est la colonne des courriers électroniques. Sur cette colonne j’ai donc appliqué une « mise en forme conditionnelle » pour pouvoir identifier mes doublons que j’ai mis en couleur rouge puis j’ai trié cette colonne de A à Z afin de mieux voir les doublons se suivre.

Mon but n’est pas de supprimer ces doublons ou triplon mais plutôt leur attribuer dans une nouvelle colonne l’expression « A supprimer » ou « Employé » selon trois conditions.

Première condition = Si j’ai des doublons dans la colonne courriers électroniques sur deux lignes je veux que l’une des lignes de doublon prenne l’expression « A supprimer » si cette ligne est s’elle qui a le moins d’information en fonction des autres colonnes (cellules vide).

Deuxième condition = Si j’ai des triplons dans la colonne courriers électroniques donc j’aurais à attribuer l’expression « A supprimer » sur deux lignes des triplons bien évidemment les lignes qui ont des informations manquantes dans certains de leurs cellules.

Troisième condition = Mais si pour des doublons j’ai sur ces deux lignes toutes les informations remplies, on peut attribuer l’expression « A supprimer » à n’importe lequel des deux. Pareil pour les triplons, on attribuera l’expression « à supprimer » à deux d’entre eux si les triplons ont tous les informations complètes.

Je me suis inscrit sur ce site sous peu pour m’améliorer en VBA car je comprends un peu la syntaxe. Si quelqu’un à un petit temps à accorder à ce problème. Merci d’avance. Même si vous avez d’autres formule en dehors des codes VBA ce serait que génial.

Vous trouverez en pièce jointe un exemplaire de fichier Excel expliquant un peu mieux ce je cherche à obtenir. Merci d’avance
 

Pièces jointes

  • Classeur1.xlsx
    22.9 KB · Affichages: 16

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @kondabalo ,

Un essai en VBA. Le code est dans le module de la feuille "Feuil1".
Cliquer sur le bouton Hop!
Le code du fichier est commenté.

nota : j'ai laissé tomber le traitement des lignes sans adresse e-mail puisque rien n'a été demandé pour ces lignes.

Code dans le module de la feuille "Feuil1":
VB:
Sub OterDoublon()
Dim dico As Object, t, i&, n&, j&

   Set dico = CreateObject("scripting.dictionary")
   t = Me.ListObjects(1).DataBodyRange
   For i = 1 To UBound(t)
      t(i, 5) = LCase(Trim(t(i, 5)))
      If t(i, 5) <> "" Then
         n = 0: For j = 1 To UBound(t, 2) - 1: n = n - (t(i, j) <> ""): Next
         If Not dico.Exists(t(i, 5)) Then
            dico.Add t(i, 5), Array(i, n)
         Else
            If n > dico(t(i, 5))(1) Then dico(t(i, 5)) = Array(i, n)
         End If
      End If
   Next i
   For i = 1 To UBound(t)
      t(i, 8) = Empty
      If t(i, 5) <> "" Then
         If i <> dico(t(i, 5))(0) Then t(i, 8) = "A supprimer"
      End If
   Next i
   Me.ListObjects(1).DataBodyRange.Columns(8).ClearContents
   Me.ListObjects(1).DataBodyRange.Columns(8).Value = Application.Index(t, 0, 8)
End Sub
 

Pièces jointes

  • kondabalo- traiter multiple- v1.xlsm
    32.3 KB · Affichages: 11
Dernière édition:

kondabalo

XLDnaute Nouveau
Bonjour @sylvanu et bonjour @mapomme , je tiens d'abord à vous remercier du temps que vous avez pu accorder à ma problématique et vos proposions de réponses répondent à mes exigences.

Cependant j'aimerais vous demandez une dernière requête. Cela concerne une conditions supplémentaire aux autres.

En effet concernant la condition ou l'on attribut de manière aléatoire l'expression " A supprimer " à des doublons ou triplons qui ont tous les informations remplie, j'aimerais obtenir dans ces cas que le code vba donne la priorité à celui qui dans sa colonne un " Numéro de téléphone " mobile.

C'est-à-dire que si j'ai deux doublons qui ont tous les informations remplie, j'aimerais que celui qui sera à supprimer sera celui disposant d'un numéro de téléphone fixe (03...... ou 04....... ou 02....... ou 02.........). Tous ceux qui ont un numéro de téléphone mobile comme 06 , 07 seront Employé ou n'auront rien à leur attribuer comme l'a fait @mapomme
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @kondabalo ,

Voir le fichier joint...
 

Pièces jointes

  • kondabalo- traiter multiple- v2.xlsm
    29.1 KB · Affichages: 18
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…