OVH Cloud OVH Cloud

Supprimer des caractères indésirables

13 réponses
Avatar
Nicolas B.
Bonjour,

Dans une chaîne de caractères comme celle-ci :ABC-000.123&4, je voudrais ne
conserver que les lettres (en majuscules) et les chiffres. Ca donnerait donc
ABC0001234.
Tout ça par VBA, et si possible passer par une boucle qui testerait un à un
les caractères parasites.

Comment puis-je faire ?


Merci :-)
--
Nicolas B.

3 réponses

1 2
Avatar
AV
Salut Pascal,
à force de voir ce type de question je suggère l'usage de Microsoft VBScript
Regular Expression 5.5
c'est très puissant...


Je n'y vois pas d'inconvénient si ce n'est la référence à MS VBScriprt Regular
Expression 5.5 qui limite un peu la portabilité mais bon...chacun fait comme il
sent (dans la mesure où ça fonctionne...)
;-)
AV

Avatar
Clément Marcotte
Bonjour,

Tiens un truc que je ne connais pas. Va falloir regarder ça un jour.

"Pascal Engelmajer" a écrit dans
le message de news:%23$zlRe$
Salut
Performant :
Public Function cleanAZ09(S As String) As String
'nécessite une référence à Microsoft VBScriprt Regular
Expression 5.5

Dim regex As RegExp
'Application.Volatile True 'Si utile
Set regex = New RegExp
regex.Global = True ' Définit le champ d'application.
regex.IgnoreCase = True ' Ignore la casse.
S = "ABC-000.123&4"
regex.Pattern = "[^A-Z0-9]" ' non A à Z et 0 à 9
S = regex.Replace(S, "")
cleanAZ09 = S
End Function
Sub test()
MsgBox cleanAZ09("ABC-000.123&4")
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."

Sénèque.
http://www.ilyapa.net/excel
"Nicolas B." a écrit dans le
message de

news: eppfSH$
Bonjour,

Dans une chaîne de caractères comme celle-ci :ABC-000.123&4, je
voudrais


ne
conserver que les lettres (en majuscules) et les chiffres. Ca
donnerait


donc
ABC0001234.
Tout ça par VBA, et si possible passer par une boucle qui
testerait un à


un
les caractères parasites.

Comment puis-je faire ?


Merci :-)
--
Nicolas B.








Avatar
Pascal Engelmajer
Salut Clément,
à un poil près c'est la même syntaxe que dans le chercher/remplacer de word.

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Tiens un truc que je ne connais pas. Va falloir regarder ça un jour.

"Pascal Engelmajer" a écrit dans
le message de news:%23$zlRe$
Salut
Performant :
Public Function cleanAZ09(S As String) As String
'nécessite une référence à Microsoft VBScriprt Regular
Expression 5.5

Dim regex As RegExp
'Application.Volatile True 'Si utile
Set regex = New RegExp
regex.Global = True ' Définit le champ d'application.
regex.IgnoreCase = True ' Ignore la casse.
S = "ABC-000.123&4"
regex.Pattern = "[^A-Z0-9]" ' non A à Z et 0 à 9
S = regex.Replace(S, "")
cleanAZ09 = S
End Function
Sub test()
MsgBox cleanAZ09("ABC-000.123&4")
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."

Sénèque.
http://www.ilyapa.net/excel
"Nicolas B." a écrit dans le
message de

news: eppfSH$
Bonjour,

Dans une chaîne de caractères comme celle-ci :ABC-000.123&4, je
voudrais


ne
conserver que les lettres (en majuscules) et les chiffres. Ca
donnerait


donc
ABC0001234.
Tout ça par VBA, et si possible passer par une boucle qui
testerait un à


un
les caractères parasites.

Comment puis-je faire ?


Merci :-)
--
Nicolas B.











1 2