Supprimer tous les chiffres : Fonction personnalisée ne fonctionne pas

Bonjour à toutes et tous,

Après quelques recherches j'ai trouvé et adapté à la fois une formule et une fonction personnalisée pour supprimer tous les chiffres d'une cellule contenant une chaîne de caractères alpha numérique.

La formule fonctionne mais je n'arrive pas à le faire via la fonction personnalisée qui me renvois une erreur.

Auriez vous des solutions à me proposer pour rendre ma fonction personnalisée fonctionnelle ?

Je joins un fichier contenant les éléments.

Merci

Très cordialement

Hugues

bonjoir,

et si vous ajoutez "application.volatile"

Function RemoveNumbers(Txt As String) As String
     Application.Volatile
     With CreateObject("VBScript.RegExp")
          .Global = True
          .Pattern = "[0-9]"
          RemoveNumbers = .Replace(Txt, "")
     End With
End Function

Bonjour BsAlv, Bonjour toutes,

BsAlv merci de t'interesser à mon post et d'essayer de ma'apporter une solution.

J'ai modifié la fonction personnalisée dans le ficher tel que tu me l'as proposé et malheureusement cela ne fonctionne toujours pas.

Function RemoveNumbers(Txt As String) As String
     Application.Volatile
     With CreateObject("VBScript.RegExp")
          .Global = True
          .Pattern = "[0-9]"
          RemoveNumbers = .Replace(Txt, "")
     End With
End Function

Fichier joint avec modification de la fonction.

Merci

Très cordialement

Hugues

Bonjour HUGOBASS,

Normal, les Regex ne fonctionnent pas sur environnement Mac.

La bibliothèque Microsoft VBScript Regular Expressions n'est pas disponible pour cet O.S.

Par contre au vu de ton fichier, si les nombres sont toujours au début de ton texte, ta formule peut être plus simple.

=DROITE(A4;NBCAR(A4)-TROUVE(" ";A4))

En recherchant le premier espace puis en ne gardant que la fin du texte après celui-ci.

il faut inspecter leurs formules.

B4 utilise la fonction "RemoveNumbers" de ce fichier, mais B5:B16 non, ces cellules utilisent la fonction "RemoveNumbers" de ='C:\Users\huguesbray\Library\CloudStorage\Dropbox\Z DIVERS\Pack de fonctions XLP-unprotected.xlam'!RemoveNumbers(A5)

Donc, copiez B4 et collez-le dans B5:B16,

EDIT : Mais je n'avais pas encore vu la réaction de X Cellus concernant le Mac ... alors, ceci vous n'aide pas !

Bonjour BsAlv, Bonjour X Cellus, Bonjour toutes et tous,

Merci BsAlv et X Cellus pour vos contributions.

X Cellus effectivement cette fonction avec ces instructions n'est pas compatible avec mon office Mac alors la messe est dite et je ferais via formule en conservant celle initiale car dans ma base réelle les chiffres des données alpha numériques ne sont toujours au même endroit.

Encore merci à vous 2 et je clôture donc ce poste en le taguant résolu

Trés cordialement

Hugues

bonsoir, 3 fonctions possible

Function RemoveNumbers(Txt As String) As String
     Application.Volatile
     For i = 1 To Len(Txt)
          s = Mid(Txt, i, 1)
          Select Case Asc(s)
               Case 48 To 57
               Case Else: RemoveNumbers = RemoveNumbers & s
          End Select
     Next
End Function

Function RemoveNumbers2(Txt As String) As String
     Application.Volatile
     For i = 0 To 9
          Txt = Replace(Txt, CStr(i), "")
     Next
     RemoveNumbers2 = Txt
End Function

Function RemoveNumbers3(Txt As String) As String
     Application.Volatile
     sp = Split(Txt)
     For i = 0 To UBound(sp)
          If IsNumeric(sp(i)) Then sp(i) = "~"
     Next
     fl = Filter(sp, "~", 0)
     If UBound(fl) > -1 Then RemoveNumbers3 = Join(fl) Else RemoveNumbers3 = "-"
End Function
Rechercher des sujets similaires à "supprimer tous chiffres fonction personnalisee fonctionne pas"