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

extraire le mot qui se trouve toujours entre [ et ]

Lanimateur

XLDnaute Nouveau
Bonjour, j'ai des cellules qui contiennent des phrases exemple en A11 :

Nicolas possède un BTS [SMS] et ...

j'aimerais extraire le mot qui se trouve à chaque fois entre le [ et le ] dans une autre cellule donc pour celle ci le mot est " SMS ".

Par contre il n'y a pas toujours de [ ] dans certaine cellule donc dans ce cas la, il faudrait que la cellule qui est censé renvoyé le mot ne renvoie rien du tout.

Merci a ceux qui pourront m'aider
 

Staple1600

XLDnaute Barbatruc
Re : extraire le mot qui se trouve toujours entre [ et ]

Bonsoir

Un début de réponse

Si en A1
Nicolas possède un BTS [SMS]

En B1, saisir la formule suivante
Code:
=SUBSTITUE(SUBSTITUE(STXT(A1;CHERCHE("[";A1);CHERCHE("]";A1));"[";"");"]";"")
 

ninbihan

XLDnaute Impliqué
Re : extraire le mot qui se trouve toujours entre [ et ]

Bonsoir L'animateur, Staple et Pierrot,
Bonsoir le forum

Avec STXT en B11:
Code:
=STXT(A11;CHERCHE("[";A11)+1;CHERCHE("]";A11)-CHERCHE("[";A11)-1)

Bonne soirée à tous,

Ninbihan
 

jp14

XLDnaute Barbatruc
Re : extraire le mot qui se trouve toujours entre [ et ]

Bonjour

Ci dessous une formule
Le texte étant en A4
=SI(ESTERREUR(CHERCHE("[";A4;1)>1);"";STXT(A4;CHERCHE("[";A4;1)+1;CHERCHE("]";A4;1)-CHERCHE("[";A4;1)-1))

A tester

JP
 

abcd

XLDnaute Barbatruc
Re : extraire le mot qui se trouve toujours entre [ et ]

Bonsoir,

Partant de l'hypothèse que la chaine de caractère entre [] ne se trouve pas nécessairement à l'extrême droite, par exemple BTS [SMS] alm

=SI(ESTNUM(CHERCHE("[";A1));STXT(A1;CHERCHE("[";A1)+1;CHERCHE("]";A1)-CHERCHE("[";A1)-1);"")

abcd
 

Staple1600

XLDnaute Barbatruc
Re : extraire le mot qui se trouve toujours entre [ et ]

Re à tous

J'avais compliqué inutilement (lol)

Une autre piste sans formule

Utiliser Données/Convertir

EDITION: macro modifiée

Code:
Sub Macro1bis()
Range("A1:A" & [A65536].End(xlUp).Row).Copy Range("B1")
Range("B1:B" & [B65536].End(xlUp).Row).TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="[", FieldInfo:=Array(Array(1, 9), Array(2, 1))
Range("B1:B" & [B65536].End(xlUp).Row).TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="]", FieldInfo:=Array(Array(1, 1), Array(2, 9))
End Sub

Voici ce que cela donne en utilisant l'enregistreur de macro
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 12/11/2008
'

'
    Range("A1:A17").Select
    Selection.Copy
    Range("B1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="[", FieldInfo:=Array(Array(1, 9), Array(2, 1))
    Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="]", FieldInfo:=Array(Array(1, 1), Array(2, 9))
End Sub
 
Dernière édition:

Discussions similaires

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