Microsoft 365 Remplacer un caractère dans une chaîne

mamard

XLDnaute Nouveau
Bonjour,
Je cherche à créer une adresse email pour enfant en ajoutant +[prénom enfant] à l'email des parents, lorsque celui ci-existe

ex. papa@email.com | prénom enfant "toto" >> email enfant = papa+[prénomenfant]@email.com

Ma formule ci-dessous est grincheuse !

col. A- eMail parent : papa@email.com
col. B- enfant : toto
col. C- eMail enfant à créer : papa+toto@email.com

Ma formul en colonne C >>> arrayformula(isblank(A2:A);"";replace(A2;SEARCH("@";A2);"+"&B2&"@")

Si vous avez une idée pour corriger un béotien ...
Merci !
 

job75

XLDnaute Barbatruc
Bonjour mamard, M12

Voyez le fichier joint et cette formule en C2, version française :
Code:
=SI(ESTERR(TROUVE("@";A2));"";LIEN_HYPERTEXTE(SUBSTITUE(A2;"@";"+"&B2&"@")))
ou version anglaise :
Code:
=IF(ISERR(FIND("@",A2)),"",HYPERLINK(SUBSTITUTE(A2,"@","+"&B2&"@")))
A+
 

Pièces jointes

  • email(1).xlsx
    10.1 KB · Affichages: 7

patricktoulon

XLDnaute Barbatruc
autant pour moi je me suis encore trompé (;/,)
c'est l'habitude d'utiliser les formule en vba avec evaluate
la bonne formule
=SI($A2<>"";SI($B2<>"";SUBSTITUE(A2;"@";"+" & B2 & "@");"");"")



demo4.gif
 

patricktoulon

XLDnaute Barbatruc
j'oubliais le test cherche"@" au cas ou en colonne A ce ne serait pas un email

purrée dur dur aujourd'hui bah. je vais faire un sieston voila

la bonne formule c'est celle ci
=SI(ESTERR(TROUVE("@";A2));"";SI($A2<>"";SI($B2<>"";SUBSTITUE(A2;"@";"+" & B2 & "@");"");""))

et encore!! le test (A vide) n'est plus nécessaire
mais qu'est ce que casino a mis dans ma binch ? ;)

cela dit il y a bien trop de tests de validité de l'adresse mail a faire pour rester en formule selon moi
 
Dernière édition:

mamard

XLDnaute Nouveau
Merci :)
Je vois que vous "tirez" la formule.
De mon côté, j'essayais d'avoir une formule en entrée qui soit avec un "arrayformula", afin de ne pas avoir à tirer la formule sur toute la colonne, mais que dès qu'il y ait une entrée en ligne n+1, la formule s'applique.... (j'ai vu ça qq part, mais j'ai dû prendre la même binch que vous et je ne le retrouve plus....)
 

mamard

XLDnaute Nouveau
Ca c'est pour les gens intelligents !
J'ai retrouvé Arrayformula, et ça marche : =ArrayFormula(IF(ISERR(FIND("@";A2:A));"";IF($A2:A<>"";IF($B1:B<>"";SUBSTITUTE(A2:A;"@";"+"&C2:C&"@");"");"")))

Si l'on remplit un @ en A3, ça va remplir tout seul ....

1591533485611.png
 

Statistiques des forums

Discussions
312 239
Messages
2 086 511
Membres
103 239
dernier inscrit
wari