[Excel] vba : garder que les caracteres alpha

mortelrdv -  
lermite222 Messages postés 9042 Statut Contributeur -
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
Configuration: Windows XP
Firefox 2.0.0.13

4 réponses

  1. zheimer
     
    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
  2. mortelrdv
     
    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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Re,
    a combiner avec
    =REGEX.SUBSTITUE(ANSI128(D9;0);"#";"")
    dans le même Addin
    A+
    0