Microsoft 365 Enlever du texte entre parenthèse

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JulesetVince31

XLDnaute Nouveau
Bjr à toutes et tous,

Suis nouveau...

Je souhaiterai enlever une partie du texte entre les parenthèses.
Exemple.
Automatisation des plan de tri TG
ENROUX (CHEMIN D ENROUX)
ENROUX (IMPASSE D ENROUX)

Ici, je souhaite enlever d enroux, et garder chemin et impasse entre parenthèses ainsi que Enroux dans la cellule.

Merci pour vos retours.
Cdlt
 
Bonjour Loïc, et bienvenu sur XLD,
Avec un petit fichier test et quelques autres exemples, cela aurait été plus simple.
Si en A1 il y a ENROUX (CHEMIN D ENROUX) , alors ENROUX (CHEMIN) peut être obtenu avec :
VB:
=STXT(A1;1;CHERCHE(" ";STXT(A1;CHERCHE("(";A1);100))+CHERCHE("(";A1)-2)&")"
 

Pièces jointes

Bonjour,

Sinon avec une fonction :
VB:
Function FormatageCellule(ByVal Chaine As String) As String

Dim LaChaine As String

    FormatageCellule = ""
    If InStr(1, Chaine, "(", vbTextCompare) = 0 Then Exit Function
    LaChaine = Split(Chaine, "(")(1)
    FormatageCellule = Split(Chaine, "(")(0) & " (" & Split(LaChaine, " ")(0) & ")"

End Function

Capture.JPG
 

Pièces jointes

Bonjour Loïc, et bienvenu sur XLD,
Avec un petit fichier test et quelques autres exemples, cela aurait été plus simple.
Si en A1 il y a ENROUX (CHEMIN D ENROUX) , alors ENROUX (CHEMIN) peut être obtenu avec :
VB:
=STXT(A1;1;CHERCHE(" ";STXT(A1;CHERCHE("(";A1);100))+CHERCHE("(";A1)-2)&")"

Bjr,
je joins le fichier. Merci pour l'aide.
En fait, c'est pour arrêter les redondances et juste garder les termes indicateurs des voies.
Merci pour l'aide.
 

Pièces jointes

Re, bonsoir Eric,
Un essai en PJ avec :
VB:
Sub Nettoie()
    Dim DL%, DC%, i%, j%, T, T1, T2
    Application.ScreenUpdating = False
    DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row
    DC = Cells(1, Columns.Count).End(xlToLeft).Column
    T = Range(Cells(1, 1), Cells(DL, DC))
    For i = 1 To UBound(T)
        For j = 1 To UBound(T, 2)
            If T(i, j) Like "*(*" Then
                T1 = Split(T(i, j), "(")
                T2 = Split(T1(1), " ")
                T(i, j) = T1(0) & "(" & T2(0) & ")"
            End If
        Next j
    Next i
    [A1].Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub
Sur la feuille, faire ALT+F8 et lancer "Nettoie"
 

Pièces jointes

Re, bonsoir Eric,
Un essai en PJ avec :
VB:
Sub Nettoie()
    Dim DL%, DC%, i%, j%, T, T1, T2
    Application.ScreenUpdating = False
    DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row
    DC = Cells(1, Columns.Count).End(xlToLeft).Column
    T = Range(Cells(1, 1), Cells(DL, DC))
    For i = 1 To UBound(T)
        For j = 1 To UBound(T, 2)
            If T(i, j) Like "*(*" Then
                T1 = Split(T(i, j), "(")
                T2 = Split(T1(1), " ")
                T(i, j) = T1(0) & "(" & T2(0) & ")"
            End If
        Next j
    Next i
    [A1].Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub
Sur la feuille, faire ALT+F8 et lancer "Nettoie"

Je ne peux pas utiliser car Windows "Une macro potentiellement dangereuse a été bloquée"... zut​

 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
3 K
Retour