VBA recuperer une formule entre parenthèse

Cells(i, "R") = str_temp
tab_str_temp = Split(str_temp, Chr(10))
If tab_str_temp(j) <> "" Then
                sPremier_caractere = Mid(tab_str_temp(j), 1, 1)
                sDernier_caractere = Mid(tab_str_temp(j), Len(tab_str_temp(j)), 1)
                If Len(tab_str_temp(j)) > 9 Then
                    If sPremier_caractere = "(" Then
                        sLCDV_temp = Mid(tab_str_temp(j), 2) 'on récupère la formule sans la parenthèse
                    ElseIf sDernier_caractere = ")" Then
                        sLCDV_temp = Mid(tab_str_temp(j), 1, Len(tab_str_temp(j)) - 1) 'on récupère la formule sans la parenthèse
                    Else
                        sLCDV_temp = tab_str_temp(j)
                    End If
                Else
                    sLCDV_temp = tab_str_temp(j)
                End If
End If

Bonjour, j'ai ici un code qui me permet de récupérer une formule mathématique sans la dernière parenthèse

Exemple dans ma cellule j'ai :

(y=c +d

OU

a+b=c )

je récupere

y= c+d

OU

a+b=c

mais j'ai un problème dans le cas où j'aurai

(y=c +d

OU

a+b=c(e+f)

OU

d+f=e)

ma formule me recupere:

y=c +d

OU

a+b=c(e+f

OU

d+f =e

Je recherche donc un code qui me permet de récupérer ma cellule sans couper la dernière parenthèse de a+b=c(e+f)

Bonjour VinS7, bonjour le forum,

Pas sûr d'avoir bien compris car ton exemple est confus... Essaie comme ça :

If InStr(1, Cells(i, "R"), "(", vbTextCompare) > 1 Then Exit Sub
If InStr(1, Cells(i, "R"), "(", vbTextCompare) = 1 Then Cells(i, "R").Value = Right(Cells(i, "R"), Len(Cells(i, "R")) - 1)
If InStr(1, Cells(i, "R"), ")", vbTextCompare) > Len(Cells(i, "R")) - 1 Then Cells(i, "R").Value = Left(Cells(i, "R"), Len(Cells(i, "R")) - 1)

Je n'ai pas compris ton code, peux tu me l'expliquer ?

Re,

En gros ça dit :

• Si la parenthèse d'ouverture ne se trouve pas en première position dans le texte, sort de la procédure (donc ne supprime rien)

• Si la parenthèse d'ouverture se trouve en première position dans le texte, supprime le premier caractère

• Si la parenthèse de fermeture trouve en dernière position dans le texte, supprime le dernier caractère

Sinon... Sélectionne un mot clé dans l'éditeur VBE et appuie sur la touche F1...

re,

Désolé je me suis pas fait comprendre je ne veux supprimer aucun caractère.

Dans ma cellule :

(y=c +d

OU

a+b=c(e+f)

OU

d+f=e)

Mon code me permet de récupérer

y=c +d

OU

a+b=c(e+f

OU

d+f=e

et il me stock tout sa dans un tableau après a l'aide d'un autre code je vais rémettre les parenthèse, mais avant je convertis chaque lettre en expression

mais mon soucis c'est que je ne peux pas convertir c(e+f car l'expression exact que je veux convertir c'est c(e+f)

il me faudrait donc un moyen de garder la dernière parenthèse dans les cas qui ressemble a celle ci

Re,

il me faudrait donc un moyen de garder la dernière parenthèse dans les cas qui ressemble a celle ci

Il me semble que c'est ce que le code proposé fait (en tous les cas sur tes 3 exemples il fonctionne)

En fait je ne comprends plus rien... Si tu as :

(y=c+d

et au final tu veux

y=c+d

Il y a bien suppression du premier caractère non !?...

Je passe la main...

la parenthèse je la retrouverai plus tard a l'aide d'un autre code, mon code fonctionne très bien

mais le problème

c'est que je ne veux pas traiter le cas où si le premier caractère n'est pas une parenthèses et que j'ai une expression entre parenthèse sur la même ligne dans mon code

le a+b=c(e+f) je ne veux pas le traiter

Rechercher des sujets similaires à "vba recuperer formule entre parenthese"