N'étant pas doué en code VBA, je bloque sur un code qui doit me remplacer dans ma feuille excel plusieurs caractères afin de pouvoir nommer des plages de cellules
ça fonctionne ici pour remplacer mes espaces en "_" mais je dois remplacer également des chiffres, des "/", des "+" etc...
J'ai testé en mettant & Replace(c, "-", "_"), pour mes tirets mais ça ne marche pas.
Comment puis-je cumuler les remplacements?
J'ai le même soucis ensuite dans excel avec =INDIRECT(SUBSTITUE(A2;" ";"_")) ou je vais également devoir remplacer les mêmes caractères que dans le code.
Re : remplacement caractère dans macro listes nommées
Bonjour dokaz,
le plus clair est encore de passer par une variable
Code:
Dim Nom as string
Nom = Replace(c, " ", "_")
Nom = replace(Nom, "/", "_")
Nom = replace(Nom, "+", "_")
...
ActiveWorkbook.Names.Add Name:=Nom, RefersTo:=f.Cells(ligne + 1, colListe)
Re : remplacement caractère dans macro listes nommées
Merci pour ces réponses mais effectivement beauté et code sont compatibles donc j'ai retenu la première façon avec la dimension Il faut que j'ai le réflexe de la dimension, c'est le top !
C'est même mieux que je pensais car à présent même les "_" qui remplaçait les espaces dans le code initial ont disparus à l'écran (mais reste dans les noms des plages)
En revanche, dans mes listes de choix excel, ma source est erronée si je mets INDIRECT (cell) et comme indiqué dans mon premier post ça vient du Substitue() où je dois remplacer les mêmes caractères que dans le code... mais comment? cette fois sous la forme ET(substitue();substitue();substitue();...) ?
J'ai testé ainsi dans la formule validation/liste : =INDIRECT(ET(SUBSTITUE(D38;" ";"_");SUBSTITUE(D38;"-";"_");SUBSTITUE(D38;")";"_");SUBSTITUE(D38;"(";"_");SUBSTITUE(D38;"+";"_"))) mais sans succès, réponse liste érronée (D38 étant ma cellule de choix niveau 1 qui fonctionne