0
votes

Trouver et remplacer la chaîne par longueur variable entre 2 signes

J'ai regardé partout, mais je ne peux pas trouver une commande comment je peux remplacer un mot entre deux caractères spéciaux. Je veux tout supprimer entre les deux supports.

Je n'ai réussi que pour supprimer un caractère spécial "(" mais pas le mot entier entre les supports.

Comment le résultat devrait-il ressembler à:

Exemple - Avant: 26125 Oldenburg (Oldenburg), Alexandersfeld

Exemple - après: 26125 Oldenburg, Alexandersfeld XXX


0 commentaires

3 Réponses :


3
votes

Si vous écrivez une procédure VBA, vous pouvez utiliser une combinaison de gauche code>, MID code> et INSTR code>:

=IFERROR(LEFT(A15,FIND("(",A15)-1) & MID(A15,FIND(")",A15)+1,999),A15)


0 commentaires

1
votes

UDF CleanText (Bereinigen)

Le code xxx


0 commentaires

2
votes

Vous pouvez également utiliser des expressions régulières pour le faire.

Option Explicit

Sub BereinigenRgEx()
Dim Text As String, outText As String
Dim RgEx As Object
'Text = ActiveSheet.Cells(1, 1)
Text = "26125 Oldenburg (Oldenburg), Alexandersfeld"
Set RgEx = CreateObject("VBScript.RegExp")
With RgEx
    .Global = True
    .Pattern = "\(.+\)"
    outText = .Replace(Text, "")
    Debug.Print outText
End With
End Sub


1 commentaires

Votre regex fonctionne sur l'échantillon donné. Mais, en règle générale, je préfère les quantificateurs paresseux afin d'éviter des problèmes s'il y a plusieurs (...) constructions dans la chaîne. Aussi (mon favori) considère une négation du caractère de terminaison, qui permettrait une correspondance même en cas d'intervenant nouvelle ligne : \ ([^)] + \)