[Excel] vba : garder que les caracteres alpha

Fermé
mortelrdv - 25 oct. 2008 à 19:24
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 27 oct. 2008 à 15:44
Bonjour,

J'ai des chaines de caracteres qui peuvent contenir du texte alphabétique ainsi que ',",#,é,à...
y a t il un moyen sous vba de supprimer les signes (ou les remplacer par _) ? et si possible de remplacer é par e et à par a,...


merci
A voir également:

4 réponses

A adapter à tes besoins spécifiques:

machaine = Range("B1").Value

For i = 1 To Len(machaine)
mcar = Asc(Mid(machaine, i, 1))

Select Case mcar

Case 32, 39, 65 To 90, 97 To 122 'si espace, apostrophe,minuscule ou majuscule
temp = temp & Mid(machaine, i, 1)

Case 224, 226 'a accentué
temp = temp & "a"

Case 232 To 234 'e accentué
temp = temp & "e"

End Select
Next i
Range("B2").Value = temp '(j'ai mis le résultat dans une autre cellule pour les essais, mais on aurait pu écrire dans B1

Maintenant ton texte est il dans une cellule, dans plusieurs? Comment doit-on lancer la mise à jour ?

Courage
0
Bonjour,

merci pour ce petit script, je l'adapterai à mes besoins.
je pensais, au départ, qu'il pouvait exister une fonction toute faite dans VBA.

Cordialement
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
27 oct. 2008 à 14:17
Bonjour,
Il y a effectivement une possibilité d'avoir ce résultat avec un Addin d'excel
Charger MoreFunc ici
Et ensuite la fonction
=ANSI128(D13;0)
enlève tout les accents de la chaine et remplace par la lettre non accentuée.
A+
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
27 oct. 2008 à 15:44
Re,
a combiner avec
=REGEX.SUBSTITUE(ANSI128(D9;0);"#";"")
dans le même Addin
A+
0