Suppression accents et autres

chatisis

XLDnaute Nouveau
Bonjour,

Je cherche une macro Excel qui me permettra de supprimer les accents , les cedilles, les trémas... comme le fait la fonction ANSI128 de Morefun pour ceux qui connaissent cet ensemble de fonctions, téléchargeable sur ce site Ce lien n'existe plus, cette fonction marche bien, mais il faut créer une colonne pour la faire fonctionner, faire un copier-coller Valeur et supprimer la colonne d'origine, c'est un peu long. Je souhaite une macro qui fait tout cela à patir de la colonne à traiter.

Merci d'avance et bon week-end.

Message édité par: chatisis, à: 26/08/2005 11:23

Message édité par: chatisis, à: 26/08/2005 11:38
 

Staple1600

XLDnaute Barbatruc
Une deuxième fonction

Function SupprimerAccents(Texte As String) As String
Dim Position As Integer
Dim Caractère As String
For Position = 1 To Len(Texte)
Caractère = Mid(Texte, Position, 1)
Select Case Caractère
Case 'á', 'à', 'â', 'ä', 'ã'
Caractère = 'a'
Case 'é', 'è', 'ê', 'ë'
Caractère = 'e'
Case 'í', 'ì', 'î', 'ï'
Caractère = 'i'
Case 'ó', 'ò', 'ô', 'ö', 'õ'
Caractère = 'o'
Case 'ú', 'ù', 'û', 'ü'
Caractère = 'u'
Case 'ý', 'ÿ'
Caractère = 'y'
Case 'ç'
Caractère = 'c'
End Select
SupprimerAccents = SupprimerAccents & Caractère
Next Position
End Function


source:
Ce lien n'existe plus
 

chatisis

XLDnaute Nouveau
Re-bonjour,

Etant absolument sûr que cette macro remplace tous les caractères accentués par des non accentués comme ci-dessous :

à, á, â, ã, ä, å par a

è, é, ê, ë par e

ì, í, î par i

ò, ó, ô, õ, ö par o


ù, ú, û, ü par u

ý, ÿ par y

ç par c

ñ par n


š par s

ž par z


Voir Ce lien n'existe plus

Ce lien n'existe plus

Meri beaucoup.
 

Staple1600

XLDnaute Barbatruc
Voilà le code modifié:

Function SupprimerAccents(Texte As String) As String
Dim Position As Integer
Dim Caractère As String
For Position = 1 To Len(Texte)
Caractère = Mid(Texte, Position, 1)
Select Case Caractère
Case 'á', 'à', 'â', 'ä', 'ã', 'å'
Caractère = 'a'
Case 'é', 'è', 'ê', 'ë'
Caractère = 'e'
Case 'í', 'ì', 'î', 'ï'
Caractère = 'i'
Case 'ó', 'ò', 'ô', 'ö', 'õ'
Caractère = 'o'
Case 'ú', 'ù', 'û', 'ü'
Caractère = 'u'
Case 'ý', 'ÿ'
Caractère = 'y'
Case 'ç'
Caractère = 'c'
Case 'ñ'
Caractère = 'n'
Case 'š'
Caractère = 's'
Case 'ž'
Caractère = 'z'
End Select
SupprimerAccents = SupprimerAccents & Caractère
Next Position
End Function

Pour les majuscules
Utilise Ucase()
Il suffit de l'insérer au bon endroit dans le code ci-dessus
 

chatisis

XLDnaute Nouveau
Re-salut,

Merci beaucoup pour ton coup de main, mais j'ai oublié de dire que je suis absolument néophite en VBA, ce que tu me demande de faire au sujet des majuscules dépassent largement mes compétences actuelles, tout ce que je sais faire pour le moment c'est de copier-coller le script d'une macro dans l'éditeur VBA et créer une icône pour lancer la macro.

Je précise encore que je cherche une Macro et non une Fonction, est-que le script que tu me propose et une macro ou une fonction ?

Merci encore.
 

myDearFriend!

XLDnaute Barbatruc
Bonjour chatisis, Staple1600,

En complément de la réponse de Staple1600 que je salue au passage, tu trouveras également ton bonheur dans ce fil de discussion : Lien supprimé (dans lequel, je te conseille le post de maître Ti du 12-07-04 11:54).

Cordialement,

Nb : pour info, chatisis, la 'Function()' que te donne Staple1600 est une fonction personnalisée VBA, il s'agit donc bien de 'macro' VBA là !
 

chatisis

XLDnaute Nouveau
Merci Staple1600,

Maintenant qu'estce je dois faire, où je doit mettre le script de la fonction ? Peux-tu STP me donner 'Un pas à pas ' pour arriver à la macro opérationnelle. Je demande un peu trop peut être, car les fonctions je ne connais absolument pas leur fabrication et leur enregistrement dans Excel.
 

chatisis

XLDnaute Nouveau
Merci bien, j'ai réussi à l'installer et elle fonctionne, mais je me suis mal fait comprendre ce matin au sujet des majuscules-minuscules.

Je voudrais qu'elle remplace les minuscules accentuées par des minuscules non accentuées et les majuscules accentuées par des majuscules non accentuées.

Voilà, je te serais reconnaissant de me modifier le code.

Bon wwek-end.
 

Staple1600

XLDnaute Barbatruc
J'aurais du suivre le conseil de myDearFriend!
et aller voir ici
Lien supprimé
avant de poster le précedent message
VB:
Function MajSansAccent$(ByVal Chaine$)
'Ti
Const VAccent = 'àáâãäåéêëèìíîïðòóôõöùúûü', VSsAccent = 'aaaaaaeeeeiiiioooooouuuu'
Dim Bcle&
For Bcle = 1 To Len(VAccent)
Chaine = Replace(Chaine, Mid(VAccent, Bcle, 1), Mid(VSsAccent, Bcle, 1))
Next Bcle
MajSansAccent = UCase(Chaine)
End Function
Message édité par: staple1600, à: 26/08/2005 19:38
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re,

Ben, à vrai dire, j'ai franchement eu l'impression de devenir 'transparent' sur ce coup là (j'avais, pour ma part, pris tout de même la peine de vous saluer...:S ). On rencontre parfois comme ça, de grands moments de solitude...:whistle:

Bonne soirée.
 

Discussions similaires

Réponses
2
Affichages
505

Statistiques des forums

Discussions
312 025
Messages
2 084 741
Membres
102 648
dernier inscrit
radhwane taibi