Bonjour à tous,
J'ai récupéré (ici je crois, mais je ne sais plus où) il y a quelques temps une super macro, qui me permet de disposer d'une nouvelle formule dans mes tableurs Excel.
Celle-ci me permet de renvoyer le contenu d'une cellule, sans caractères accentués, par le biais de la formule =sansAccents()
Voici le code source en question, qui marche très bien :
Cependant, pour que cette fonction fonctionne (!), je n'ai trouvé d'autres solution que de la mettre dans un module de mon classeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ' Définition de la conversion Const accent As String = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç" Const noAccent As String = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc" ' La fonction : Public Function sansAccents(ByRef s As String) As String Dim i As Integer Dim lettre As String * 1 sansAccents = s For i = 1 To Len(accent) lettre = Mid$(accent, i, 1) If InStr(sansAccents, lettre) > 0 Then sansAccents = Replace(sansAccents, lettre, Mid$(noAccent, i, 1)) End If Next i End Function
J'aimerai, comme je le fais avec d'autres macros, qu'elle soit enregistrée dans mon "PERSONAL.XLSB" afin d'être appellée depuis n'importe quel fichier Excel. Hors, lorsque je créé un module dans "PERSONAL.XLSB" et que j'y mets ce code, la fonction ne réponds pas.
Avez-vous une idée de la source du problème ?
Merci à vous.
Sylvain M.
Partager