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 :
1682696053590.png

O
 

Tidjyphenom

XLDnaute Nouveau
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 :
Regarde la pièce jointe 1169204
O
Bonjour, je n'ai rien en O5. Faute de copier-collé. Je voulais mettre A1. Je vais tester votre formule et je vous redis. ;)
 

Jacky67

XLDnaute Barbatruc
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.
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
En faites dans mon cas je voulais appliquer les substitue seulement si la celulle comprend au moins 2 double-points donc je dois passer par une vérif. Je l'ai faite avec

VB:
SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;":";"")) > 1; ""; j'applique la formule de substitution)

Du coup ça marche bien comme ça :)
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
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 :)
Re..
Non, cette proposition n'est pas de moi.
Tu as la solution, alors tout va bien :)

Bonne continuation.
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 326
Membres
111 102
dernier inscrit
driss touzi