Surligner les mots qui se ressemblent

Fermé
guigui06 - 2 juil. 2013 à 10:29
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 2 juil. 2013 à 15:40
Bonjour,

Je travaille sur un fichier excel. Je souhaiterais que dans une colonne donnée soit surligné (ou mis en couleur provisoirement ou tout autre moyen pour que l'on puisse le voir), les mots qui se ressemblent (pas seulement en doublons). C'est à dire que s'il est marqué "point" ou "poind" il faudrait que cela se mette en surbrilance pour que l'utilisateur estime s'il s'agit d'un doublon à supprimer ou pas...

Voila je ne sais pas si c'est réalisable avec formules, ou macro..

merci pour vos réponses

A voir également:

2 réponses

jfqld Messages postés 9070 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 28 mai 2018 123
2 juil. 2013 à 13:27
tu cliques sur ta colonne pour qu elle soit entièrement en subrillance
dans ACCUEIL
mise en forme conditionnelle
Règle de mise en surbrillance des cellules
et tu cliques sur VALEUR EN DOUBLE
et tous les mots identiques se mettront en surbrillance

0
oui je connais cette facon la. Seulement je souhaiterais une technique qui permet de mettre non seulement les mots en doubles mais également qui se ressemblen (à quelques lettres près...)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
2 juil. 2013 à 15:40
Bonjour,

Par formule, c'est niet!

Par VBA, pourquoi pas.
J'ai trouvé pour toi, ICI, une fonction personnalisée qui transforme des chaînes de caractères en un code. Si les chaînes de caractères sont similaires, elles possèdent le même code, et donc tu peux repérer des quasi-doublons...

Mise en place :
- depuis un classeur excel, tapez ALT+F11
- Insertion/Module
- copié-collé ce code dans le module ainsi créé :
Function SOUNDEX(Surname As String) As String
' Developed by Richard J. Yanco
' This function follows the Soundex rules given at
' http://home.utah-inter.net/kinsearch/Soundex.html

    Dim Result As String, c As String * 1
    Dim Location As Integer

    Surname = UCase(Surname)

'   First character must be a letter
    If Asc(Left(Surname, 1)) < 65 Or Asc(Left(Surname, 1)) > 90 Then
        SOUNDEX = ""
        Exit Function
    Else
'       St. is converted to Saint
        If Left(Surname, 3) = "ST." Then
            Surname = "SAINT" & Mid(Surname, 4)
        End If

'       Convert to Soundex: letters to their appropriate digit,
'                     A,E,I,O,U,Y ("slash letters") to slashes
'                     H,W, and everything else to zero-length string

        Result = Left(Surname, 1)
        For Location = 2 To Len(Surname)
            Result = Result & Category(Mid(Surname, Location, 1))
        Next Location
      
'       Remove double letters
        Location = 2
        Do While Location < Len(Result)
            If Mid(Result, Location, 1) = Mid(Result, Location + 1, 1) Then
                Result = Left(Result, Location) & Mid(Result, Location + 2)
            Else
                Location = Location + 1
            End If
        Loop
    
'       If category of 1st letter equals 2nd character, remove 2nd character
        If Category(Left(Result, 1)) = Mid(Result, 2, 1) Then
            Result = Left(Result, 1) & Mid(Result, 3)
        End If
    
'       Remove slashes
        For Location = 2 To Len(Result)
            If Mid(Result, Location, 1) = "/" Then
                Result = Left(Result, Location - 1) & Mid(Result, Location + 1)
            End If
        Next
    
'       Trim or pad with zeroes as necessary
        Select Case Len(Result)
            Case 4
                SOUNDEX = Result
            Case Is < 4
                SOUNDEX = Result & String(4 - Len(Result), "0")
            Case Is > 4
                SOUNDEX = Left(Result, 4)
        End Select
    End If
End Function

Private Function Category(c) As String
'   Returns a Soundex code for a letter
    Select Case True
        Case c Like "[AEIOUY]"
            Category = "/"
        Case c Like "[BPFV]"
            Category = "1"
        Case c Like "[CSKGJQXZ]"
            Category = "2"
        Case c Like "[DT]"
            Category = "3"
        Case c = "L"
            Category = "4"
        Case c Like "[MN]"
            Category = "5"
        Case c = "R"
            Category = "6"
        Case Else 'This includes H and W, spaces, punctuation, etc.
            Category = ""
    End Select
End Function

- fermer la fenêtre Visual Basic Editor

Utilisation :
En A1 saisir : point
En A2 saisir : poind
En A3 saisir : loind
En A4 saisir : moins

En B1 saisir la formule : =SOUNDEX(A1)
"étirer" cette formule vers le bas

En C1 saisir la formule : =SI(NB.SI(B:B;B1)>1;"Doublon";"")
"étirer" cette formule vers le bas...
0