Extraction de chaines de caractères entre parenthèses dans une cellule

Bonjour,

Je dois isoler depuis une cellule les chaines de caractères entre parenthèses. J'en ai souvent plusieurs par cellules. Exemple ci-dessous :

Barrage, Cascade, Frontière, Génie civil(Habitat / Architecture), Hydrographie(Nature / Environnement), Installation électrique, Installation hydraulique(Habitat / Architecture), Paysage(Nature / Environnement), Rivière

Je dois récupérer Habitat / Architecture et Nature / Environnement. J'ai trouvé la formule ci-dessous dans laquelle j'ai mis la cellule qui m'intéresse à savoir J2 et la colonne qui m'intéresse J :

=TRIM(MID(SUBSTITUTE(SUBSTITUTE("("&J2(",")"),")",REPT(" ",LEN($J2))),2*LEN($J2)*(COLUMNS($J:J)),LEN($J2)))

La formule ne fonctionne pas et j'ai le message d'erreur suivant

formule

Je ne suis pas assez connaisseur en Excel et je ne comprends pas le problème.

Merci d'avance.

Guillaume

Salut GuyVictor

Un petit exemple sur un petit fichier joint avec les résultats souhaités va aider les membres pour bien te répondre

Salut Amir,

Merci pour la précision, ci-après une image explicitant le résultat attendu.

formule2

je pense que c’est une formule matricielle qui calcule plusieurs résultats essayer de la valider avec CTRL+MAJ+ENTRÉE.

Salut GuyVictor,
Salut Amir,

je penche pour un "Split de Split" mais je n'ai pas le temps tout de suite.
En soirée...


A+

Bonsoir à toutes et tous, GuyVictor, AMIR, curulis57,

@GuyVictor,

A tester en "B2"

=SUPPRESPACE(STXT(SUBSTITUE(SUBSTITUE("("&$A2;"(";")");")";REPT(" ";NBCAR($A2)));2*NBCAR($A2)*COLONNES($A:A);NBCAR($A2)))

Puis tirer la formule vers la droite et vers le bas autant que nécessaire.

Cordialement.

Salut GuyVictor,
Salut l'équipe,

solution VBA :
- tu peux double-cliquer en [A:A] pour traiter toute la colonne ;
- ou changer (ou coller) une ou plusieurs lignes pour un traitement local.

Public Sub SplitCel(ByVal iIdx%)
'
Dim tSplit
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
For x = IIf(iIdx = 0, 1, iIdx) To IIf(iIdx = 0, Range("A" & Rows.Count).End(xlUp).Row, iIdx)
    Range("B" & x).Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column).Value = ""
    tSplit = Split(Range("A" & x).Value, ")")
    For y = 0 To UBound(tSplit) - 1
        Cells(x, 4 + y) = Split(tSplit(y), "(")(1)
    Next
Next
'
Columns.AutoFit
Application.ScreenUpdating = True
Application.EnableEvents = True
'
End Sub
22guyvictor.xlsm (22.76 Ko)


A+

Bonjour,

Une autre proposition réalisée avec Power Query, natif sous Excel 2016.
Cdlt.

25guyvictor.xlsx (18.46 Ko)

Bonjour à tous,

Merci pour vos réponses, vous m'avez beaucoup aidé. La solution de MDO100 fonctionne très bien. Je vais étudier les autres solutions ça me fera bosser EXCEL.

Merci encore.

Rechercher des sujets similaires à "extraction chaines caracteres entre parentheses"