Bonjour,
Je vous propose un essai avec une fonction personnalisée (que je n'ai pas pu tester car j'ai un mac) :
Il y a cependant quelques pré-requis :
- enregistrer le fichier au format .xlsm,
- activer le volet "Développeur" (si ce n'est pas déjà fait) : Volet "Fichier" / Options / Personnaliser le ruban > cocher "développeur",
- sur le volet "Développeur", ouvrir l'éditeur "Visual Basic" (raccourci Alt + F11),
- dans le menu contextuel "Insertion", sélectionner "Module",
- aller sur ce nouveau module et y copier le code,
- à partir du menu "Outils"/ Références, sélectionner la référence "Microsoft VBScript Regular Expressions 5.5"
Function REMPLACER_MODELE(chaine As String) As string
Dim ExpReg As REGEXP
Dim modele$
Set ExpReg = CreateObject("vbscript.regexp")
modele = "[^e]\d|.e\d" 'modele : tout caractère sauf e suivi d'un chiffre ou tout caractère suivi de e suivi d'un chiffre
With ExpReg
.Global = True
.Pattern = modele
If .test(chaine) Then 'si correspondance trouvée dans la chaine
REMPLACER_MODELE = .replace(chaine, "-") 'remplace toutes les correspondances par "-"
Else
REMPLACER_MODELE = chaine 'sinon, renvoie la chaine
End If
End With
End function
Il est possible de remplacer \d (chiffre quelconque) par [1-4] si vous préférez.
Edit : Et il suffira en B1 de saisir la formule :
= REMPLACER_MODELE(A1)
Cdlt,