VBA pour rechercher doublon suite à concatener

Bonsoir à tous

Je viens vers vous pour savoir si via une macro il serait possible de concatener puis de rechercher les doublons parmi ces concatener.

Je sais le faire via formule concatener et par une mise en forme conditionnelle mais mon souci c'est que je dois travailler sur un fichier de plus de 100 000 lignes et cela me prend plus de 15 minutes pour que les calculs s'effectuent.

si en plus la solution VBA (si cela est possible) pouvait inclure une mise en forme conditionnelle pour indiquer les doublons ce serait le top

je suis ouvert à toutes autres solution

Merci d'avance

je vous joins un fichier type avec une 20aine de ligne

25doublons.xlsx (9.78 Ko)

Bonsoir Ozeoo, bonsoir le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous. Les cellules concaténées non unique sont colorée de rouge...

Le code :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Long 'déclare la variable I (Incrément)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)

Set O = Worksheets("Feuil1") 'définit l'onglet O
O.Columns("G:G").ClearContents 'efface d'éventuelles anciennes données dans la colonne G de l'onglet O
O.Range("G1").Value = "CONCATENER" 'écrit en G1 de l'onglet O
TV = O.Range("C1").CurrentRegion 'définit le tableau des valeurs TV
DL = UBound(TV, 1) 'définit la dernière ligne DL du tableau TV
TV(1, 5) = "CONCATENER" 'définit la donnée ligne 1 colonne 5 de TV
For I = 2 To DL 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    'concatène dans la donnée ligne I colonne 5 les données des 4 premières colonne de la ligne séparées par un espace
    TV(I, 5) = TV(I, 1) & " " & TV(I, 2) & " " & TV(I, 3) & " " & TV(I, 4)
Next I 'prochaine ligne de la boucle
O.Range("G1").Resize(DL, 1).Value = Application.Index(TV, , 5) 'renvoie dans G1 redimensionnée la 5ème colonne du tableau TV
With Range("G2:G" & DL) 'prend en compte la plage G2:G... & DL
    .Cells.FormatConditions.Delete 'efface une éventuelle mise en forme conditionnelle existante
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=NB.SI($G$2:$G$" & DL & ";G2)>1" 'formule de la nouvelle mise en forme conditionnelle
    With .FormatConditions(1).Interior 'prend en compte les format des cellule respectant la condition
        .PatternColorIndex = xlAutomatic 'couleur motif automatique
        .Color = 255 'couleur de remplissage (rouge)
        .TintAndShade = 0 'type de hachurage (sans)
    End With 'fin de la prise en compte des format...
End With 'fin de la prise en compte de la plage...
End Sub

Le fichier :

33ozeoo-v01.xlsm (24.79 Ko)

Tu es un chef Thau theme cela marche nickel

Merci beaucoup

Rechercher des sujets similaires à "vba rechercher doublon suite concatener"