Isoler une chaine de caractères entre deux caractères spécifiques

jbgrossetmagagne

XLDnaute Nouveau
Bonjour, bonjour,

En fait mon problème va vous paraitre simple. Je veux isoler une chaine de caractères (nom de la ville) contenu entre deux caractères spéciaux.

Exemple:

AE DISTRIBUTION ARTMILLE SARL | FR, ., STE LUCE /LOIRE (02_EBV_65_129219)

Le nom de la ville sera toujours entre "FR, .," et "("

J'ai fouillé sur les forums mais je n'ai pas trouvé....mon fichier fait 10 000 lignes donc si vous avez une solution simple et rapide ca me sauve la vie!!!!!!!!!!!!!!!!!!!!!!!


Merci beaucoup et à bientot

JB
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir, jbgrossetmagagne et bienvenue sur XLD.

Tiens, il n'y a pas d'extrait de fichier avec quelques données représentatives !

Ca risque de n'être pas être facile de tester nos éventuelles propositions !
 

Staple1600

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir à tous


Je suggère aussi la voie de Données/Convertir Séparateur : Autre : .
(en attendant la PJ qui infirmera ou confirmera cette suggestion)
 

jbgrossetmagagne

XLDnaute Nouveau
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonjour,

Merci de votre aide.
JC, j'ai essayé avec ta formule mais ca ne marche pas dans tout les cas.

Je vous joint une partie du fichier

Encore merci
 

Pièces jointes

  • fichier exemple.xls
    25.5 KB · Affichages: 41
  • fichier exemple.xls
    25.5 KB · Affichages: 35
  • fichier exemple.xls
    25.5 KB · Affichages: 36

Staple1600

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Re,

Voilà le résultat en deux passes de Données/Convertir
(temps de traitement moins de 17 secondes)
01donconv.jpg
1) premier passage en colonne D
Séparateur: .
2) second passage en colonne E
Séparateur : (


Qu'en dis-tu ?
 

moteurV12

XLDnaute Occasionnel
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir,

En conservant l'idée d'origine de JCGL et en complétant par une macro.

Espérant que ....A+
 

Pièces jointes

  • fichier exemple réponse.xls
    42 KB · Affichages: 49

Staple1600

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Re

Alors pour découvrir Données/Convertir, voir le lien ci-dessous
Fractionner des noms avec l'Assistant Conversion - Excel


Et pour te simplifier la vie, voici la manip en macro VBA
Code VB:
Sub MacroDonConv()
Dim c As Range
'passage 1
Range("A1:A17").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="(", FieldInfo:=Array(Array(1, 1), Array(2, 9)), TrailingMinusNumbers:=True

'passage 2
Range("B1:B17").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=",", FieldInfo:=Array(Array(1, 9), Array(2, 9), Array(3, 1)), _
TrailingMinusNumbers:=True

'nettoyage
For Each c In Columns(2).SpecialCells(xlCellTypeConstants, 2)
c = VBA.Trim(c.Text)
Next
End Sub



NB: Tu sais comment lancer une macro ?
Si non, suivre les explications ci-dessous
Exécuter une macro - Excel
[Chapitre: Exécuter une macro]
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir à tous :)

D'après une formule de mapomme :)
essayez en B1 à recopier vers le bas :
=SUPPRESPACE(STXT(GAUCHE(SUPPRESPACE(A1);CHERCHE("(";SUPPRESPACE(A1);1)-1);CHERCHE("|";SUPPRESPACE(A1))+9;99))
 

Pièces jointes

  • JBG exemple.xls
    28 KB · Affichages: 40

Staple1600

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir à tous

[aparte pour les aminches]
Parfois j'ai du mal à comprendre votre réticence à utiliser les outils natifs d'Excel
comme ici Données/Convertir
(surtout que traiter en formules risque d'être un peu coton, non ?
mon fichier fait 10 000 lignes
[/aparte pour les aminches]
 

Victor21

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir à tous, JM :)

Bonsoir à tous
[aparte pour les aminches]
Parfois j'ai du mal à comprendre votre réticence à utiliser les outils natifs d'Excel
comme ici Données/Convertir
(surtout que traiter en formules risque d'être un peu coton, non ?
[/aparte pour les aminches]

Je plussoie à ton aparté JM et la preuve, s'il en fallait, est ; mais quel plaisir aussi d'adapter et de partager une solution par formule (utilisant également les fonctions natives d'Excel).

Notre ami a maintenant le choix entre les manipulations au clavier, le VBA (pas testé), et les formules.
Ne restent plus que les RegEx pour être exhaustif :)
 

Jacou

XLDnaute Impliqué
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Bonsoir,
la formule que JCGL a proposée doit être corrigée comme suit :
=STXT(A1;TROUVE("FR, .,";A1;1)+7;(TROUVE(" (";A1)-1)-(TROUVE("FR, .,";A1;1)+6))
à mettre en B1 et à tirer vers le bas
pas besoin de macro !
bonne nuit
 

Staple1600

XLDnaute Barbatruc
Re : Isoler une chaine de caractères entre deux caractères spécifiques

Re

Victor21
Parfois la logique impose de refréner son plaisir, non ?
mon fichier fait 10 000 lignes
10 000 cellules avec 10 000 formules est-ce bien raisonnable ? ;)

Mais effectivement "abondance de biens ne nuit pas", mais en l’occurrence
donc si vous avez une solution simple et rapide

La conclusion s'impose toute seule, non ?


PS: Évidemment ceci n'est que mon opinion, pas la Sainte-Parole du Tableur Merveilleux ;)
En faire ce que bon vous semble ... ou pas.
 
Dernière édition:

Statistiques des forums

Discussions
312 215
Messages
2 086 318
Membres
103 176
dernier inscrit
jean.yvesjean.yves