Extraction caractères entre parenthèses

Jb2605

XLDnaute Nouveau
Bonjour,

J'ai recherché sur le fofo, une solution proche de mon problème, en vain.
Je pense qu'il faut une formule matricielle, mais je n'arrive pas à la structurer.

J'ai une suite de caractères du type : aaaaaa (aaa) et je souhaite extraire le contenu des parenthèses (sachant que le contenu des parenthèses est variable).

Merci d'avance.
JB
 

gilbert_RGI

XLDnaute Barbatruc
Re : Extraction caractères entre parenthèses

Bonjour

en VBA

Code:
Sub essai()
ActiveCell = Val(Mid(ActiveCell.Offset(0, -2), InStr(ActiveCell.Offset(0, -2), "(") + 1))
End Sub

ou avec une fonction perso

Code:
Function tr(texte As String)
l = Val(Mid(texte, InStr(texte, "(") + 1))
tr = l
End Function

ou encore comme ceci si entre les parenthèse il n'y a que des chiffres

=STXT($C8;TROUVE("(";$C8)+1;TROUVE(")";$C8)-TROUVE("(";$C8)-1)

:rolleyes:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Extraction caractères entre parenthèses

Bonjour à tous


Il est aussi possible d'utiliser Données/Convertir
Séparateur : (


EDITION: ce qui donnerait ceci en VBA
Code:
Sub Macro1()
Dim dl&
dl = [A65536].End(xlUp).Row
    Range("A1:A" & dl).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" & dl).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:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction caractères entre parenthèses

Bonjour le fil, bonjour le forum,

J'ose malgré le retard une autre proposition VBA :
Code:
Sub Macro1()
For Each cel In Range("A1:A" & Range("A65536").End(xlUp).Row)
    cel.Offset(0, 1).Value = Left(Split(cel, "(", -1)(1), Len(Split(cel, "(", -1)(1)) - 1)
Next cel
End Sub
 

Discussions similaires

Réponses
3
Affichages
421

Statistiques des forums

Discussions
312 177
Messages
2 085 973
Membres
103 073
dernier inscrit
MSCHOE16