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

- - Dernière réponse :  Raoufia - 22 déc. 2015 à 18:35
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.
Afficher la suite 

7 réponses

Messages postés
8649
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
363
0
Merci
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.
Pierre1310
Messages postés
8649
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
363 -
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
24390
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
17 septembre 2019
4763
0
Merci
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
49854
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
16 septembre 2019
10658
0
Merci
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 !
http://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
Raymond PENTIER
Messages postés
49854
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
16 septembre 2019
10658 > 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 :-)
Pierre1310
Messages postés
8649
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
363 -
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 +
> Pierre1310
Messages postés
8649
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
49854
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
16 septembre 2019
10658
0
Merci
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
15913
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
17 septembre 2019
2793
0
Merci
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
2279
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
17 septembre 2019
743
0
Merci
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
1938
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
16 août 2019
759
0
Merci
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