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

Microsoft 365 Remplacer les occurrences dans une chaine

Tidjyphenom

XLDnaute Nouveau
Bonjour,

Je souhaite remplacer le signe double point dans toutes mes cellules qui en comportent au moins 2.
J'ai la chaine suivante dans une cellule : "Ceci est:un texte : d'exemple"
Je souhaite obtenir le résultat suivant : "Ceci est un:texte d'exemple"

Voici la formule que j'utilise :
VB:
=SI(NB.SI(A1;":")>1; SUBSTITUE(A1;":";" ";1)&SUBSTITUE(O5;" : ";":";2); A1)

Malheureusement cela me retourne la valeur de A1 sans modification au lieu du résultat souhaité.

Qu'est ce qui ne va pas dans ma formule SVP ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Tidjyphenom,
Et qu'avez vous en O5 ? Ce serait sympa de le savoir pour comprendre votre formule.
Si la chaine est en A1, alors essayez :
VB:
=SIERREUR(STXT(A1;1;CHERCHE(" : ";A1)-1)&STXT(A1;CHERCHE(" : ";A1)+2;1000);A1)
on obtient :

O
 

Tidjyphenom

XLDnaute Nouveau
Bonjour, je n'ai rien en O5. Faute de copier-collé. Je voulais mettre A1. Je vais tester votre formule et je vous redis.
 

Tidjyphenom

XLDnaute Nouveau
Bonjour à tous,

Je crois comprendre que notre ami veut ceci :
Code:
=SUBSTITUE(SUBSTITUE(A1;":";" ";1);" : ";":")
A+
C'est presque ça et en quelque sorte similaire à ma formule mais j'arrive pas à vérifier si la cellule comporte au moins 2 double point avant d'appliquer les substitue. D'où mon SI(NB.SI(A1;":")>1 mais ça me retourne 0 systématiquement.
 

Jacky67

XLDnaute Barbatruc
Pour trouver le nombre de ":"
Code:
=NBCAR(A1)-NBCAR(SUBSTITUE(A1;":";""))
'nb.si' , compte le nombre de cellules non vide d'une plage répondant à une condition dans cette plage.
Que donnent les autres propositions, auxquelles il n'y a pas de réponse?
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Re..
Au risque de prêcher dans le vide..
Toutes les propositions ont été testés ?
 

Tidjyphenom

XLDnaute Nouveau
Re..
Au risque de prêcher dans le vide..
Toutes les propositions ont été testés ?
Oui. D'ailleurs je pensais avoir répondu à ta proposition. Mais seule la solution de @job75 répond à mon besoin.

Pour celle ci que tu avais proposé il me semble
VB:
=SIERREUR(STXT(A1;1;CHERCHE(" : ";A1)-1)&STXT(A1;CHERCHE(" : ";A1)+2;1000);A1)
Elle ne gère que le cas des phrases possédant de doubles-points suivis et précédés d'un espace.

Ainsi, pour Ceci est : un texte : de test, le résultat est Ceci est : un texte de test
Ou encore pour Ceci est:un texte : de test, le résultat est Ceci est:un texte de test

Le premier double point n'est pas remplacé par un espace.
Donc dans les 2 cas le résultat attendu n'est pas celui souhaité, qui doit être : Ceci est un texte:de test

Ne connaissant pas toutes les fonctions de Excel (car j'ai commencé à manipuler le logiciel que depuis 2 semaines), je suis parti directement sur la solution de job75 qui est plus facile à lire aussi.

En tout cas merci quand même
 

Jacky67

XLDnaute Barbatruc
Re..
Non, cette proposition n'est pas de moi.
Tu as la solution, alors tout va bien

Bonne continuation.
 

Discussions similaires

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