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 :)
 

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

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal