Autre fonction, la fonction que j'ai nommé SUPPRIME_ACCENTS et qui permet de supprimer les tous les accents d'un texte, des majuscules et / ou minuscules.
Cette fonction est librement utilisable et téléchargeable (10 ko) ici : http://christianwtd.free.fr/FicExemple/FonctionsPlus.ods
Il s'agit d'un classeur vide, mais qui contient un module macro intitulé : ModuleFonctionsPlus qui contient les fonctions INITIALES, SUPPRIME_ACCENTS et DATE_DIF Restriction d'emploi : si un classeur circule entre différents utilisateurs et matériels, il faut soit que les fonctions accompagnent les classeurs, soit que tous les utilisateurs les aient installées.
Fonction SUPPRIME_ACCENTS (V1.0 complet)
Function Supprime_Accents(Texte As String, Optional Majuscules As Boolean, Optional Minuscules As Boolean) As String
'-----------------------------------
' SUPPRIME_ACCENTS Novembre 2006
' Le tableur Calc par l'exemple
' http://christianwtd.free.fr
'-----------------------------------
'
Dim Nc As Integer, n As Integer, Car As String
If IsMissing(Majuscules) Then Majuscules = True
If IsMissing(Minuscules) Then Minuscules = True
Nc = Len(Texte)
'
For n = 1to Nc
Car = Mid(Texte, n, 1)
'
If Majuscules Then
If Car = "À"Or Car ="Á"Or Car ="Â"Or Car ="Ã"Or Car ="Ä"Or Car ="Å"Then
Car = "A"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ç"Then
Car = "C"
Mid(Texte, n, 1) = Car
ElseIf Car = "È"Or Car ="É"Or Car = "Ê"Or Car = "Ë"Then
Car = "E"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ì"Or Car = "Í"Or Car = "Î"Or Car = "Ï" Then
Car = "I"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ñ" Then
Car = "N"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ò"Or Car = "Ó"Or Car = "Ô"Or Car = "Õ"Or Car = "Ö"Then
Car = "O"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ù"Or Car = "Ú"Or Car = "Û"Or Car = "Ü"Then
Car = "U"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ý"Then
Car = "Y"
Mid(Texte, n, 1) = Car
ElseIf Car = "Ž"Then
Car = "Z"
Mid(Texte, n, 1) = Car
Endif
Endif
'
If Minuscules Then
If Car = "â"Or Car ="à"Or Car ="á"Or Car = "ã"Or Car ="ä"Or Car = "å"Then
Car = "a"
Mid(Texte, n, 1) = Car
ElseIf Car = "ç"Then
Car = "c"
Mid(Texte, n, 1) = Car
ElseIf Car = "é"Or Car ="è"Or Car = "ê"Or Car = "ë"Then
Car = "e"
Mid(Texte, n, 1) = Car
ElseIf Car = "î"Or Car = "ï"Then
Car = "i"
Mid(Texte, n, 1) = Car
ElseIf Car = "ñ"Then
Car = "n"
Mid(Texte, n, 1) = Car
ElseIf Car = "ò"Or Car = "ó"Or Car = "ô"Or Car = "õ"Or Car = "ö"Then
Car = "o"
Mid(Texte, n, 1) = Car
ElseIf Car = "û"Or Car = "ü"Then
Car = "u"
Mid(Texte, n, 1) = Car
ElseIf Car = "ý"Or Car = "ÿ"Then
Car = "y"
Mid(Texte, n, 1) = Car
Endif
Endif
Next n
Supprime_Accents=Texte
End Function
Commentaires
Comme pour les autres fonctions, il suffit d'entrer =SUPPRIME_ACCENTS(cellule) ou =SUPPRIME_ACCENTS("données"). Dans les exemples suivants on suppose que les exemples sont dans la cellule A1
Données
Remarques
Valeur
Commentaires
Texte
Obligatoire
Si aucun texte, retourne la valeur zéro
Majuscules
Option
0 ou 1
1 par défaut. Si valeur 0, aucune action
Minuscules
Option
0 ou 1
1 par défaut. Si valeur 0, aucune action. Si on utilise cette option, il faut obligatoirement utiliser l'option précédente.
Au sujet de cette fonction
Les lignes 8 et 9 fixent les états par défaut. Si les Options Majuscules et Minuscules ne sont pas définies elles sont considérées comme étant à traiter.
dans une boucle For.. Next de 13 à 74, on traite caractère par caractère.
Cette nouvelle version fait exactement la même chose, mais utilise les Select Case au lieu des If.. Then.. Else
Fonction SUPPRIME_ACCENTS (V1.1 complet)
Function Supprime_Accents(Texte As String, Optional Majuscules As Boolean, Optional Minuscules As Boolean) As String
'--------------------------------------
' SUPPRIME_ACCENTS Décembre 2006 - v1.1
' Le tableur Calc par l'exemple
' http://christianwtd.free.fr
'--------------------------------------
'
Dim Nc As Integer, n As Integer, Car As String
If IsMissing(Majuscules) Then Majuscules = True
If IsMissing(Minuscules) Then Minuscules = True
Nc = Len(Texte)
'
For n = 1to Nc
Car = Mid(Texte, n, 1)
'
If Majuscules Then
Select Case Car
Case"À", "Á", "Â", "Ã", "Ä", "Å"
Car = "A"
Mid(Texte, n, 1) = Car
Case"Ç"
Car = "C"
Mid(Texte, n, 1) = Car
Case"È", "É", "Ê", "Ë"
Car = "E"
Mid(Texte, n, 1) = Car
Case"Ì", "Í", "Î", "Ï"
Car = "I"
Mid(Texte, n, 1) = Car
Case"Ñ"
Car = "N"
Mid(Texte, n, 1) = Car
Case"Ò", "Ó", "Ô", "Õ", "Ö"
Car = "O"
Mid(Texte, n, 1) = Car
Case"Ù", "Ú", "Û", "Ü"
Car = "U"
Mid(Texte, n, 1) = Car
Case"Ý"
Car = "Y"
Mid(Texte, n, 1) = Car
Case"Ž"
Car = "Z"
Mid(Texte, n, 1) = Car
End Select
Endif
'
If Minuscules Then
Select Case Car
Case"â", "à", "á", "ã", "ä", "å"
Car = "a"
Mid(Texte, n, 1) = Car
Case"ç"
Car = "c"
Mid(Texte, n, 1) = Car
Case"é", "è", "ê", "ë"
Car = "e"
Mid(Texte, n, 1) = Car
Case"î", "ï"
Car = "i"
Mid(Texte, n, 1) = Car
Case"ñ"
Car = "n"
Mid(Texte, n, 1) = Car
Case"ò", "ó", "ô", "õ", "ö"
Car = "o"
Mid(Texte, n, 1) = Car
Case"û", "ü"
Car = "u"
Mid(Texte, n, 1) = Car
Case"ý", "ÿ"
Car = "y"
Mid(Texte, n, 1) = Car
End Select
Endif
Next n
Supprime_Accents=Texte
End Function
Ce site n'est plus mis à jour. Merci aux nombreux visiteurs depuis 2003. Consultez le Wiki LibreOffice.