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.
avec la chaine de caractère en cellule A1, le résultat sera mit en cellule A2.
Sub Macro1() For i = 1 To Len(Range("A1")) u = Mid(Range("A1"), i, 1) If IsNumeric(u) Or (Asc(u) >= 65 And Asc(u) <= 90) Then m = m & u End If Next Range("A2") = m End Sub
isabelle
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.
bonjour Nicolas,
avec la chaine de caractère en cellule A1, le résultat sera mit en
cellule A2.
Sub Macro1()
For i = 1 To Len(Range("A1"))
u = Mid(Range("A1"), i, 1)
If IsNumeric(u) Or (Asc(u) >= 65 And Asc(u) <= 90) Then
m = m & u
End If
Next
Range("A2") = m
End Sub
isabelle
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.
avec la chaine de caractère en cellule A1, le résultat sera mit en cellule A2.
Sub Macro1() For i = 1 To Len(Range("A1")) u = Mid(Range("A1"), i, 1) If IsNumeric(u) Or (Asc(u) >= 65 And Asc(u) <= 90) Then m = m & u End If Next Range("A2") = m End Sub
isabelle
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.
AV
Ca pourrait faire ça :
Sub zzzz() For i = 1 To Len(ActiveCell) If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _ Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then x = x & Mid(ActiveCell, i, 1) Next MsgBox x End Sub
AV
Ca pourrait faire ça :
Sub zzzz()
For i = 1 To Len(ActiveCell)
If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _
Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then
x = x & Mid(ActiveCell, i, 1)
Next
MsgBox x
End Sub
Sub zzzz() For i = 1 To Len(ActiveCell) If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _ Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then x = x & Mid(ActiveCell, i, 1) Next MsgBox x End Sub
AV
Nicolas B.
Merci isabelle, ça marche.
A+ -- Nicolas B.
bonjour Nicolas,
avec la chaine de caractère en cellule A1, le résultat sera mit en cellule A2.
Sub Macro1() For i = 1 To Len(Range("A1")) u = Mid(Range("A1"), i, 1) If IsNumeric(u) Or (Asc(u) >= 65 And Asc(u) <= 90) Then m = m & u End If Next Range("A2") = m End Sub
isabelle
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.
Merci isabelle, ça marche.
A+
--
Nicolas B.
bonjour Nicolas,
avec la chaine de caractère en cellule A1, le résultat sera mit en
cellule A2.
Sub Macro1()
For i = 1 To Len(Range("A1"))
u = Mid(Range("A1"), i, 1)
If IsNumeric(u) Or (Asc(u) >= 65 And Asc(u) <= 90) Then
m = m & u
End If
Next
Range("A2") = m
End Sub
isabelle
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.
avec la chaine de caractère en cellule A1, le résultat sera mit en cellule A2.
Sub Macro1() For i = 1 To Len(Range("A1")) u = Mid(Range("A1"), i, 1) If IsNumeric(u) Or (Asc(u) >= 65 And Asc(u) <= 90) Then m = m & u End If Next Range("A2") = m End Sub
isabelle
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.
Nicolas B.
Merci à toi aussi. :-)
A+ -- Nicolas B.
Ca pourrait faire ça :
Sub zzzz() For i = 1 To Len(ActiveCell) If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _ Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then x = x & Mid(ActiveCell, i, 1) Next MsgBox x End Sub
AV
Merci à toi aussi.
:-)
A+
--
Nicolas B.
Ca pourrait faire ça :
Sub zzzz()
For i = 1 To Len(ActiveCell)
If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i,
1)) < 91 _ Or Asc(Mid(ActiveCell, i, 1)) > 47 And
Asc(Mid(ActiveCell, i, 1)) < 58 Then
x = x & Mid(ActiveCell, i, 1)
Next
MsgBox x
End Sub
Sub zzzz() For i = 1 To Len(ActiveCell) If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _ Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then x = x & Mid(ActiveCell, i, 1) Next MsgBox x End Sub
AV
_rg_rg_
"Nicolas B." wrote in news:eppfSH $:
ABC-000.123&4
Private Function Clean(ByVal S As String) As String Const OUT As String = "-.&" Dim i As Long Clean = S For i = 1 To Len(OUT) While InStr(Clean, Mid(OUT, i, 1)) > 0 Position = InStr(Clean, Mid(OUT, i, 1)) Clean = Left(Clean, InStr(Clean, Mid(OUT, i, 1)) - 1) _ & Right(Clean, Len(Clean) - InStr(Clean, Mid(OUT, i, 1))) Wend Next i End Function
"Nicolas B." <nicolas.bruot@adresse.bidon.com> wrote in news:eppfSH
$GEHA.2036@TK2MSFTNGP12.phx.gbl:
ABC-000.123&4
Private Function Clean(ByVal S As String) As String
Const OUT As String = "-.&"
Dim i As Long
Clean = S
For i = 1 To Len(OUT)
While InStr(Clean, Mid(OUT, i, 1)) > 0
Position = InStr(Clean, Mid(OUT, i, 1))
Clean = Left(Clean, InStr(Clean, Mid(OUT, i, 1)) - 1) _
& Right(Clean, Len(Clean) - InStr(Clean, Mid(OUT, i, 1)))
Wend
Next i
End Function
Private Function Clean(ByVal S As String) As String Const OUT As String = "-.&" Dim i As Long Clean = S For i = 1 To Len(OUT) While InStr(Clean, Mid(OUT, i, 1)) > 0 Position = InStr(Clean, Mid(OUT, i, 1)) Clean = Left(Clean, InStr(Clean, Mid(OUT, i, 1)) - 1) _ & Right(Clean, Len(Clean) - InStr(Clean, Mid(OUT, i, 1))) Wend Next i End Function
Pascal Engelmajer
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.
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." <nicolas.bruot@adresse.bidon.com> a écrit dans le message de
news: eppfSH$GEHA.2036@TK2MSFTNGP12.phx.gbl...
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
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.
Pascal Engelmajer
Salut Alain, à force de voir ce type de question je suggère l'usage de Microsoft VBScript Regular Expression 5.5 c'est très puissant... -- 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 "AV" a écrit dans le message de news: et$EfU$
Ca pourrait faire ça :
Sub zzzz() For i = 1 To Len(ActiveCell) If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _
Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then
x = x & Mid(ActiveCell, i, 1) Next MsgBox x End Sub
AV
Salut Alain,
à force de voir ce type de question je suggère l'usage de Microsoft VBScript
Regular Expression 5.5
c'est très puissant...
--
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
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:
et$EfU$GEHA.548@TK2MSFTNGP09.phx.gbl...
Ca pourrait faire ça :
Sub zzzz()
For i = 1 To Len(ActiveCell)
If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) <
91 _
Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) <
58 Then
x = x & Mid(ActiveCell, i, 1)
Next
MsgBox x
End Sub
Salut Alain, à force de voir ce type de question je suggère l'usage de Microsoft VBScript Regular Expression 5.5 c'est très puissant... -- 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 "AV" a écrit dans le message de news: et$EfU$
Ca pourrait faire ça :
Sub zzzz() For i = 1 To Len(ActiveCell) If Asc(Mid(ActiveCell, i, 1)) > 64 And Asc(Mid(ActiveCell, i, 1)) < 91 _
Or Asc(Mid(ActiveCell, i, 1)) > 47 And Asc(Mid(ActiveCell, i, 1)) < 58 Then
x = x & Mid(ActiveCell, i, 1) Next MsgBox x End Sub
AV
Pascal Engelmajer
Salut, attention il faut supprimer le S en dur dans la fonction (utilisé pour tester)
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. 'ligne à supprimer ============================== > S = "ABC-000.123&4"
'========================================== > regex.Pattern = "[^A-Z0-9]" ' non A à Z et 0 à 9
S = regex.Replace(S, "") cleanAZ09 = S End Function
-- 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 "Pascal Engelmajer" a écrit dans le message de news: #$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.
Salut,
attention il faut supprimer le S en dur dans la fonction (utilisé pour
tester)
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.
'ligne à supprimer ============================== > S = "ABC-000.123&4"
'========================================== > regex.Pattern = "[^A-Z0-9]" ' non A à Z et 0 à 9
S = regex.Replace(S, "")
cleanAZ09 = S
End Function
--
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
"Pascal Engelmajer" <pascal.engelmajer@ilyapa_spam.net> a écrit dans le
message de news: #$zlRe$GEHA.3564@TK2MSFTNGP09.phx.gbl...
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." <nicolas.bruot@adresse.bidon.com> a écrit dans le message de
news: eppfSH$GEHA.2036@TK2MSFTNGP12.phx.gbl...
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
Salut, attention il faut supprimer le S en dur dans la fonction (utilisé pour tester)
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. 'ligne à supprimer ============================== > S = "ABC-000.123&4"
'========================================== > regex.Pattern = "[^A-Z0-9]" ' non A à Z et 0 à 9
S = regex.Replace(S, "") cleanAZ09 = S End Function
-- 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 "Pascal Engelmajer" a écrit dans le message de news: #$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.
Nicolas B.
Merci pour ta réponse, mais je voulais en fait une solution sans boucler sur chaque caractère à supprimer (vu qu'il y en a presque 200).
A+ -- Nicolas B.
"Nicolas B." wrote in news:eppfSH $:
ABC-000.123&4
Private Function Clean(ByVal S As String) As String Const OUT As String = "-.&" Dim i As Long Clean = S For i = 1 To Len(OUT) While InStr(Clean, Mid(OUT, i, 1)) > 0 Position = InStr(Clean, Mid(OUT, i, 1)) Clean = Left(Clean, InStr(Clean, Mid(OUT, i, 1)) - 1) _ & Right(Clean, Len(Clean) - InStr(Clean, Mid(OUT, i, 1))) Wend Next i End Function
Merci pour ta réponse, mais je voulais en fait une solution sans boucler sur
chaque caractère à supprimer (vu qu'il y en a presque 200).
A+
--
Nicolas B.
"Nicolas B." <nicolas.bruot@adresse.bidon.com> wrote in news:eppfSH
$GEHA.2036@TK2MSFTNGP12.phx.gbl:
ABC-000.123&4
Private Function Clean(ByVal S As String) As String
Const OUT As String = "-.&"
Dim i As Long
Clean = S
For i = 1 To Len(OUT)
While InStr(Clean, Mid(OUT, i, 1)) > 0
Position = InStr(Clean, Mid(OUT, i, 1))
Clean = Left(Clean, InStr(Clean, Mid(OUT, i, 1)) - 1) _
& Right(Clean, Len(Clean) - InStr(Clean, Mid(OUT, i, 1)))
Wend
Next i
End Function
Merci pour ta réponse, mais je voulais en fait une solution sans boucler sur chaque caractère à supprimer (vu qu'il y en a presque 200).
A+ -- Nicolas B.
"Nicolas B." wrote in news:eppfSH $:
ABC-000.123&4
Private Function Clean(ByVal S As String) As String Const OUT As String = "-.&" Dim i As Long Clean = S For i = 1 To Len(OUT) While InStr(Clean, Mid(OUT, i, 1)) > 0 Position = InStr(Clean, Mid(OUT, i, 1)) Clean = Left(Clean, InStr(Clean, Mid(OUT, i, 1)) - 1) _ & Right(Clean, Len(Clean) - InStr(Clean, Mid(OUT, i, 1))) Wend Next i End Function
Nicolas B.
Merci aussi, pour une soluion originale.
A+ -- Nicolas B.
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.
Merci aussi, pour une soluion originale.
A+
--
Nicolas B.
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." <nicolas.bruot@adresse.bidon.com> a écrit dans le
message de news: eppfSH$GEHA.2036@TK2MSFTNGP12.phx.gbl...
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.
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.