Suppression de doublons de cellule sans VBA - Macro

Bonjour à tous !

J'ai fouillé un peu sur le forum sans malheureusement trouver mon bonheur...

je possède une base avec une colonne unique A1-A2500

Chaque case est susceptible d'avoir des doublons, sachant que chaque doublon potentiel est encadré par "|"

Je dois faire un tri dans chaque case et non sur la colonne en elle même

Ca donne :

A1 : |azerty|zertyu|azerty|azerty|

A2 : |qsdfgh|sdfghj|dfghjk|qsdfgh|

j'ai mis des couleurs pour que ce soit facilement visible

Il faut que j'arrive à avoir ça :

B1 : |azerty|zertyu|

B2 : |qsdfgh|sdfghj|dfghjk|

Le problème c'est que je doit trouver une solution sans macro ou VBA car je n'y jamais mis les pieds et c'est le vide infini pour moi... lol !

Est ce possible ...???

Un grand merci pour votre aide précieuse !!!

Bonjour,

Tu n'est peut-être pas familier des macros, mais sans doute qu'une fonction personnalisée te rendrait service.

Une fonction personnalisée est une macro de type Function qui renvoie une résultat après calcul sur les données qu'on lui soumet. Elle s'utilise de la même façon et dans les même conditions que les fonctions intégrées d'Excel, ce qui n'est pas dépaysant.

Il suffit donc de copier le texte de la macro ci-dessous, d'ouvrir l'éditeur VBA dans Excel par Alt+F11, dans l'éditeur de faire Insertion > Module pour insérer une module standard, et dans ce module (page blache) de coller la fonction. Puis de refermer l'éditeur.

Ensuite, en B1, tu tapes = suivi du nom de la fonction : DEDOUBLERDONNEES (elle apparaîtra dans la liste fournie par l'assistant, tu n'auras donc même pas à taper en entier), après la parenthèse, tu sélectionnes A1 pour que A1 s'ajoute comme argument de la fonction). Tu fermes la parenthèse, tu valides, et tu regardes si le résultat te convient.

Function DEDOUBLERDONNEES(dinit As String) As String
    Dim dtrait, i%, j%
    Application.Volatile
    dtrait = Replace(dinit, " ", "")
    dtrait = Replace(dtrait, Chr(10), "")
    dtrait = Replace(dtrait, "|", " ")
    dtrait = Split(dtrait)
    For i = 1 To UBound(dtrait) - 2
        For j = i + 1 To UBound(dtrait) - 1
            If dtrait(j) = dtrait(i) Then dtrait(j) = "@"
        Next j
    Next i
    dtrait = Join(dtrait, "|")
    dtrait = Replace(dtrait, "@|", "")
    DEDOUBLERDONNEES = dtrait
End Function

Cordialement

NB- Si tes données sont susceptibles de contenir le caractère "@", signale-le moi. Je ferai une correction pour choisir un caractère intermédiaire (servant à l'élimination des données supprimées) que tu n'utilises pas...

Bonjour et merci de m'avoir consacré du temps...

Bon je commence copier-coller ... ok tout va bien

Alt+F11 ... ok

Et après ...???? Ou est cet éditeur, ou enregistrer après le copier-coller ...??

Pour info j'ai le office 10 en fait pas le 2013

Bonjour,

Excellente fonction de MFerrand. Bonne idée !

Pas de panique, après Alt+F11, tu fais un clic droit dans le panneau en haut à gauche (sur Feuil1, ThisWorkbook, ...) et tu fais Insertion -> Module. Tu arrive sur un grand cadre tout blanc à droite. Tu copie/colle le code de MFerrand dans ce grand cadre blanc. Tu peux fermer avec la croix rouge en haut à droite et utiliser la fonction =DEDOUBLERDONNEES dans tes cellules sur excel.

Cordialement.

Merci Kuartz...!

Bon, je teste demain pour voir si j'y arrive...

Merci en tout cas de votre aide

Rechercher des sujets similaires à "suppression doublons vba macro"