Dans une colonne d'une feuille, j'ai des données mais certaines finissent par du texte entre parenthèse
ex : DUPONT (Truc)
Je voudrais savoir si il y moyen de supprimer "(Truc)"
Sachant que se n'est pas forcement le mot "Truc"
Dans une colonne d'une feuille, j'ai des données mais certaines finissent par du texte entre parenthèse
ex : DUPONT (Truc)
Je voudrais savoir si il y moyen de supprimer "(Truc)"
Sachant que se n'est pas forcement le mot "Truc"
Re
Un bout de code qui fonctionne sur la cellule B2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim intDeb As Integer Dim IntFin As Integer intDeb = InStr(1, Range("B2").Value, "(") IntFin = InStr(1, Range("B2").Value, ")") Range("B2").Value = Trim(Replace(Range("B2").Value, Mid(Range("B2").Value, intDeb, IntFin - intDeb + 1), ""))
En reprenant l'exemple de JF
En mettant ça, tu testes la cellule pour vérifier qu'une parenthèse est bien présente. Si oui, tu crées un tableau ou la parenthèse est le séparateur et tu prends le premier indice (0) du tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 If instr(Range("B2").Value ,"(")<> 0 then _ Range("B2").Value = trim(Split(Range("B2").Value, "(")(0))
Trim retire l'éventuel espace placé à droite (et à gauche) du texte restant.
Bonne soirée
EditTu peux aussi utiliser Find (---> F1) pour ne rechercher que les cellules contenant une parenthèse. Le meilleur exemple est dans l'aide en ligne![]()
Un code plus simple qui supprime tout ce qui se trouve a droite du premier caractère "(" trouvé
NB : le précédent code supprime tout ce qui se trouve entre parenthèses (parenthèses incluses)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim StrA As String StrA = Range("B2").Value Range("B2").Value = Trim(Left(StrA, InStr(1, StrA, "(") - 1))
Ex : Bidulle (truc) machin => Bidulle machin
Envoyé par jfontaine
Envoyé par FCL31
plus simple![]()
Je sais ouskel'n'or mais des fois je suis compliqué dans ma tête![]()
bonjour tous, un autre exemple avec left boucle simple a adapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub es() Dim c As Range Application.ScreenUpdating = False For Each c In Range("a2", Range("a65536").End(xlUp)) If Not IsNumeric(c) And c <> "" Then c = Left(c, InStr(c, "(") - 1) End If: Next c End Sub
Bonjour,
ça suppose Laetita que le "(" existe, alors que c'est parfois.
Ouesklnor ne copie pas s'il n'y a pas "(" mais je suppose que tu as omis volontairement le Else
a tous
Le code de ouskel'n'or a l'air de marche nikel
J'ai pas testé les autre (désolé) mais je les garde sous le coude
![]()
On peut faire comme ça :ça suppose Laetita que le "(" existe, alors que c'est parfois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub esII() Dim c As Range Application.ScreenUpdating = False For Each c In Range("a2", Range("a65536").End(xlUp)) If Not IsNumeric(c) And c <> "" Then pos = InStr(c, "(") If pos > 0 Then c = Left(c, pos - 1) End If End If: Next c End Sub
re,
si pas présent on considére expression numeriqueça suppose Laetita que le "(" existe, alors que c'est parfois.
non ???? a moins que j' ai loupe quelque chose!!!! a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Not IsNumeric(c) Then
ps autant pour moi effectivement si pas numerique erreur le code de l'ami alex corrige le pb...
Vos codes ont l'air de bien marché
Toutefois, à l'avantage de supprimer les espaces restant à la fin de la cellules (même si j'ai déjà une macro qui le fait, c'est pas plus mal)
![]()
Partager