Supprimer une chaîne de caractère d'une cellule [Résolu/Fermé]

Signaler
-
 Raoufia -
Bonjour,

Voilà j'ai un fichier qui est composé de lignes comme les deux suivantes :

- admirabledesign.com1Admirable Design +AC0- Le site de tous les Design +AC0- Le site du Design+ACIAIg-
ou encore
- afhe.hypotheses.org2Association fran+AOc-aise d'histoire +AOk-conomique+A

Je souhaiterais utiliser une formule excel qui me permettrait de supprimer tous les caractères qui se trouvent après le ".com" ou ".org".
Comment faire ?

Je vous remercie infiniment.

7 réponses

Messages postés
8552
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
481
Bonjour,

Tu peux utiliser

if ma_chaine like".com" then pour détécter ta chaine

ou

Replace(monText, ";", ".")

ça remplace les ";" par des "." dans ton text (tu peux aussi mettre une cellule)

Dans ton cas

Cells(i,j)=Replace(Cells(i,j),".com","")

a +
Merci beaucoup Pierre1310 pour cette réponse rapide.
Je ne suis pas très douée avec les formules et je pense que ma question a été mal posée.

J'ai donc en A;1 la chaine suivante
admirabledesign.com1Admirable Design +AC0- Le site de tous les Design +AC0- Le site du Design+ACIAIg-
en A;2 la chaîne
afhe.hypotheses.org2Association fran+AOc-aise d'histoire +AOk-conomique+A
ainsi de suite...

Mon but est d'obtenir en B;1 admirabledesign.com et en B2 afhe.hypotheses.org

Le problème est que dans ma colonne A le nombre de caractères à extraire n'est pas toujours le même.

Mille mercis.
Messages postés
8552
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
481
Donc tu veux couper ta chaine plutôt?
Oui. Vaucluse m' a proposé une réponse qui colle bien avec les .org et .com mais pas les .fr
Messages postés
25171
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
9 juillet 2020
5 352
Bonjour
si on s'en tient rigoureusement à votre demande et donc s'i ne s'agit que de .com ou .org pour un texte en A1:

=STXT(A1;1;TROUVE(SI(NB.SI(A1;"*.com*");".com";".org");A1;1)+3)
crdlmnt



Errare humanum est, perseverare diabolicum
Merci beaucoup Vaucluse ça fonctionne très bien.
Il a malheureusement aussi des .fr comment les ajouter à la formule ?

Merciiiii
Messages postés
51902
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
9 juillet 2020
13 629
Bonjour Raoufla.

Dans le texte placé en A1, il faut d'abord repérer l'emplacement de ".com" ou de ".org" ; ensuite il suffira d'extraire la partie gauche du texte.
En B1, la formule
=SIERREUR(TROUVE(".com";A1);TROUVE(".org";A1))

affiche l'emplacement du point de ".com" ou de ".org".
Pour éliminer les caractères placés après ".com" ou ".org", on utilisera la formule
=GAUCHE(A1;B1+3)

En fusionnant ces deux formules, on aboutit à la formule unique
=GAUCHE(A1;SIERREUR(TROUVE(".com";A1);TROUVE(".org";A1))+3)
qui fonctionne bien !
https://www.cjoint.com/c/ELwoKezu4lF
Je n'ai utilisé ici que des fonctions Excel classiques, et pas de VBA.

Cordialement.
C'est bien, la retraite ! Surtout aux Antilles ... :-) 
Raymond (INSA, AFPA, CF/R)
Merci beaucoup Pentier le +4 fonctionne très bien avec les .org ou .com mais pas avec les .fr
Messages postés
51902
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
9 juillet 2020
13 629 > Raoufia
J'ai remplacé +4 par +3 ...

C'est quoi, ce ".fr" ? D'où sort-il ? Il n'en était pas question, dans ta demande initiale ! Tu vas en ajouter encore beaucoup, comme ça ?
Parce qu'il n'y aura plus de formule possible ...
Pardon, je suis désolée :-(
En fait dans ma colonne A j'ai du .com .org et .fr

Merci beaucoup pour ta réponse :-)
Messages postés
8552
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
481
tu fais une boucle for
Tu balaye tes lignes
Cells(1, 1) = Replace(Cells(1, 1), ".com", "ce que tu veux")
Cells(1, 1) = Replace(Cells(1, 1), ".fr", "ce que tu veux")
Cells(1, 1) = Replace(Cells(1, 1), ".org", "ce que tu veux")
etc etc
et tu fais cette analyse à toutes les cellules que tu veux analyser
a +
>
Messages postés
8552
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019

Merci beaucoup pour le temps consacré à ma demande.

Bonne soirée et bonnes fêtes
Messages postés
51902
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
9 juillet 2020
13 629
Raoufla, suite à tes posts #6, 7, 8 et 10, voici ma solution :
=GAUCHE(A3;SIERREUR(TROUVE(".fr";A3)+2;SIERREUR(TROUVE(".org";A3)+3;TROUVE(".com";A3)+3)))
C'est bien, la retraite ! Surtout aux Antilles ... :-) 
Raymond (INSA, AFPA, CF/R)
Merci beaucoup pour le temps consacré à ma demande.
C'est parfait.
Messages postés
16171
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 juillet 2020
2 988
Bonjour à tous,

ca devrait être possible avec une matricielle mais...

extraction quelque soit le suffixe (org, fr, eu, com, uk, net....) en extrayant le 1° chiffre après le suffixe par une fonction personnalisée à insérer dans un module
(en espérant qu'il y ait toujours un chiffre juste après le suffixe du site)

=GAUCHE(B2;(CHERCHE(extrait_chiffre(B2);B2;1)-1))

et la fonction personnalisée
Option Explicit
'---------------------------
Function extrait_chiffre(ByRef texto As String) As Byte
Dim reg As Object
Dim extraction As Object
Dim digit
Set reg = CreateObject("vbscript.regexp")
'on travaille sur toute la cellule
reg.Global = True
'le modèle est un caractère "digital ("d")
reg.Pattern = "(\d)"
' éxécute l'extraction svt modèle (collection des digits...)
Set extraction = reg.Execute(texto)
For Each digit In extraction
' cherche le premier chiffre présent
If IsNumeric(digit) Then
extrait_chiffre = digit
Exit For
End If
Next digit
Set extraction = Nothing
Set reg = Nothing
End Function

Merci beaucoup
Messages postés
2334
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
30 juin 2020
850
Bonjour à tous,
On peut aussi bâtir une formule avec la fonction Substitue:
=STXT(A2;1;CHERCHE("µ";SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;".fr";"µ");".org";"µ");".com";"µ"))-1)
Messages postés
1925
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
7 juillet 2020
790
Bonjour à tous,

une matricielle qui gère les extensions que l'on veut :
=GAUCHE(BR13;MAX(SIERREUR(TROUVE({".com";".org";".fr";".eu";".uk";".be";".de";".sp"};BR13);""))-1+NBCAR(INDEX({".com";".org";".fr";".eu";".uk";".be";".de";".sp"};SOMMEPROD((MAX(SIERREUR(TROUVE({".com";".org";".fr";".eu";".uk";".be";".de";".sp"};BR13);""))=SIERREUR(TROUVE({".com";".org";".fr";".eu";".uk";".be";".de";".sp"};BR13);""))*LIGNE($1:$8)))))

j'ai choisi 8 cas dans le tableau {".com";".org";".fr";".eu";".uk";".be";".de";".sp"}. Il suffit de l'adapter aux besoins.
Le nombre de choix intervient dans LIGNE($1:$8). Il faut modifier le 8 si on change le nombre de choix.
Je travaille sur la cellule BR13; il suffit de la remplacer par la cellule kivabien.
Le SOMMEPROD() remplace un EQUIV() qui n'a pas voulu fonctionner. Il retourne la position de l'extension qui a été trouvée.
L'INDEX() retourne l'extension elle-même.
Le NBCAR() fournit le nombre de caractères de l'extension trouvée.
Le MAX(SIERREUR()) fournit la position de la chaîne trouvée.

naturellement, il faut valider par CTRL+MAJ+ENTER.

cordialement
Merci beaucoup