VBA Remplacer plusieurs caractères (d'un coup)

Bonsoir à tous,

Dans une boucle For Each c In Range(f.Cells....

Sur cette ligne, on nomme une plage en remplaçant les espaces par "_"

ActiveWorkbook.Names.Add Name:=Replace(c, " ", "_"), RefersTo:=f.Cells(LgListe + 1, colListe).Resize(mondico.Count)

Pour que çà marche dans tous les cas,

il faudrait remplacer aussi les : "-" et "&" et autres caractères refusés dans nom défini.

Comment coder çà ?

Bonne soirée

Amicalement

Claude

Bonsoir ,

Une 'tite Fonction perso :

Au début :

Dim Var$ '(important !)

Ensuite :

Var = c.Value

ActiveWorkbook.Names.Add Name:= PREP(Var), RefersTo......

Une 'tite Fonction Perso pour compléter :

Function PREP(S$) As String
For i = 1 To Len(S)
k = Asc(Mid(S, i, 1))
Select Case k
Case 48 To 57
Case 65 To 90
Case 97 To 122
Case Else: k = 95
End Select
R = R & Chr(k)
Next
PREP = R
End Function

Bonsoir.

Merci galopin,

çà fonctionne très bien,

c'est donc la seule alternative, que de passer par une fonction,

rien à faire avec Replace ?

J'étudie un peu les listes en cascade,

voici le fichier d'étude

Je laisse le fil ouvert encore un peu, si d'autres solutions

Claude

272copie-de-book1.zip (29.60 Ko)

Bonjour,

C'est surement le plus simple !

A+

Bonjour à tous,

Vu qu'on est dans les trucs en cascade, tu peux utiliser la fonction Replace en cascade :

'fonction de remplacement des caractères interdits dans le nom d'une feuille
    texte = "fghjhfj:fg/fgsek\,°uiio5][[sj124?*"
    newText = ""
    replaceArray = Replace( _
                   Replace( _
                   Replace( _
                   Replace( _
                   Replace( _
                   Replace( _
                   Replace(texte, _
                           ":", newText), _
                           "\", newText), _
                           "/", newText), _
                           "?", newText), _
                           "*", newText), _
                           "[", newText), _
                           "]", newText)

Caractère à adapter

Bonjour à tous,

vba-new,

là, j'avoue que j'ai du mal à suivre,

je garde quand même ta proposition sous le coude.

merci à vous deux

Amicalement

Claude

Rechercher des sujets similaires à "vba remplacer caracteres coup"