Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
bonjour à tous
j'ai cru voir "si existe" dans l’énoncé
donc cette condition concerne t elle le papa ou le (fiston ou fillette)?
pour régler les deux cas
=SI($A1<>"";.SI($B1<>"";SUBSTITUE(A1;"@";"+" & B1 & "@") ;""),"")
 

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....)
 

patricktoulon

XLDnaute Barbatruc
tiens vide ta colonne C et lance ceci
VB:
Sub Macro1()
    Range("C2:C1000").FormulaR1C1 = _
    "= IF(ISERR(FIND(""@"",RC[-2])),"""",IF(RC2<>"""",SUBSTITUTE(RC[-2],""@"",""+"" & RC[-1] & ""@""),""""))"
End Sub
 

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 ....

 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…