Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SUPPRIMER CERTAINS CARACTERE D'UNE CELLULE

13 réponses
Avatar
elodie005
Bonjour,

Je sais que je demande beaucoup d'aide en se moment mais =E7a serait
vraiement g=E9nial si vous pouviez =E0 nouveau m'aider...

J'ai en colonne A des cellules contenant un ou plusieurs mots pouvant
contenir des parenth=E8ses et qui sont suivi par (X%) avec des espaces
plus ou moins variables entre.
L'ideal serait qu'un macro suprime les espaces et (X%) =E0 la fin des
mots sur toutes les feuilles d'un classeur.

Ex (je vous conseille pas de reprendre cette recette c'est vraiment un
exemple ;-) :

GATEAU AU CHOCOLAT
CHOCOLAT (45%)
SUCRE (15 %)
BEURRE (PAS DE MARGARINE) (20%)
LEVURE DE BOULANGERIE (5%)

devient avec aucun espace derri=E8re chaque mot :

GATEAU AU CHOCOLAT
CHOCOLAT
SUCRE
BEURRE (PAS DE MARGARINE)
LEVURE DE BOULANGERIE

10 réponses

1 2
Avatar
DanielCo
Bonjour,
le "15 %" 15 espace %, c'est une erreur ou une éventualité ?
Daniel


Bonjour,

Je sais que je demande beaucoup d'aide en se moment mais ça serait
vraiement génial si vous pouviez à nouveau m'aider...

J'ai en colonne A des cellules contenant un ou plusieurs mots pouvant
contenir des parenthèses et qui sont suivi par (X%) avec des espaces
plus ou moins variables entre.
L'ideal serait qu'un macro suprime les espaces et (X%) à la fin des
mots sur toutes les feuilles d'un classeur.

Ex (je vous conseille pas de reprendre cette recette c'est vraiment un
exemple ;-) :

GATEAU AU CHOCOLAT
CHOCOLAT (45%)
SUCRE (15 %)
BEURRE (PAS DE MARGARINE) (20%)
LEVURE DE BOULANGERIE (5%)

devient avec aucun espace derrière chaque mot :

GATEAU AU CHOCOLAT
CHOCOLAT
SUCRE
BEURRE (PAS DE MARGARINE)
LEVURE DE BOULANGERIE
Avatar
DanielCo
En tout cas :

Sub test()
Dim c As Range, Tabl
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If InStr(1, c.Value, "%") > 0 Then
c.Value = Application.Substitute(c.Value, " %", "%")
Tabl = Split(c.Value, " ")
For i = 0 To UBound(Tabl)
If InStr(1, Tabl(i), "%") > 0 Then
Tabl(i) = ""
End If
Next i
c.Value = Join(Tabl, " ")
c.Value = Application.Substitute(c.Value, Chr(160), "")
End If
Next c
End Sub

Daniel


Bonjour,
le "15 %" 15 espace %, c'est une erreur ou une éventualité ?
Daniel


Bonjour,

Je sais que je demande beaucoup d'aide en se moment mais ça serait
vraiement génial si vous pouviez à nouveau m'aider...

J'ai en colonne A des cellules contenant un ou plusieurs mots pouvant
contenir des parenthèses et qui sont suivi par (X%) avec des espaces
plus ou moins variables entre.
L'ideal serait qu'un macro suprime les espaces et (X%) à la fin des
mots sur toutes les feuilles d'un classeur.

Ex (je vous conseille pas de reprendre cette recette c'est vraiment un
exemple ;-) :

GATEAU AU CHOCOLAT
CHOCOLAT (45%)
SUCRE (15 %)
BEURRE (PAS DE MARGARINE) (20%)
LEVURE DE BOULANGERIE (5%)

devient avec aucun espace derrière chaque mot :

GATEAU AU CHOCOLAT
CHOCOLAT
SUCRE
BEURRE (PAS DE MARGARINE)
LEVURE DE BOULANGERIE
Avatar
elodie005
Merci beaucoup Daniel pour ta réponse, tous les pourcentages sont
supprimés et c'est super par contre j'ai toujours quelques espaces
derrière chaque mot alors qu'il m'en faudrait aucun....

Peux tu m'aider à nouveau?

Merci
Avatar
DanielCo
Essaie :

Sub test()
Dim c As Range, Tabl
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If InStr(1, c.Value, "%") > 0 Then
c.Value = Application.Substitute(c.Value, " %", "%")
Tabl = Split(c.Value, " ")
For i = 0 To UBound(Tabl)
If InStr(1, Tabl(i), "%") > 0 Then
Tabl(i) = ""
End If
Next i
c.Value = Join(Tabl, " ")
c.Value = Application.Substitute(c.Value, Chr(160), "")
c.Value = Application.Trim(c.Value)
c.Value = Application.Clean(c.Value)
End If
Next c
End Sub

Daniel


Merci beaucoup Daniel pour ta réponse, tous les pourcentages sont
supprimés et c'est super par contre j'ai toujours quelques espaces
derrière chaque mot alors qu'il m'en faudrait aucun....

Peux tu m'aider à nouveau?

Merci
Avatar
elodie005
Formidable ça marche ! Une dernière requête ça ne marche que sur un e
feuille....serait-il possible que ça le fasse sur toutes les feuilles
du classeur?

Encore merci pour tout
Avatar
Péhemme
Bonjour Daniel,

Pour en ajouter un à la panoplie :
c.Value = Left(c.Value, Len(c.Value) - 1)
;-))
Par ailleurs, afin de "raccourcir" on peut utiliser "Replace" à la place de
"Application.Substitute".
;-))
Bravo en tout cas pour toutes tes interventions.
Bien amicalement
Michel



"DanielCo" a écrit dans le message de
news:iurtpl$79a$
Essaie :

Sub test()
Dim c As Range, Tabl
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If InStr(1, c.Value, "%") > 0 Then
c.Value = Application.Substitute(c.Value, " %", "%")
Tabl = Split(c.Value, " ")
For i = 0 To UBound(Tabl)
If InStr(1, Tabl(i), "%") > 0 Then
Tabl(i) = ""
End If
Next i
c.Value = Join(Tabl, " ")
c.Value = Application.Substitute(c.Value, Chr(160), "")
c.Value = Application.Trim(c.Value)
c.Value = Application.Clean(c.Value)
End If
Next c
End Sub

Daniel


Merci beaucoup Daniel pour ta réponse, tous les pourcentages sont
supprimés et c'est super par contre j'ai toujours quelques espaces
derrière chaque mot alors qu'il m'en faudrait aucun....

Peux tu m'aider à nouveau?

Merci




Avatar
DanielCo
Bonjour Michel,

;-)))

Daniel


Bonjour Daniel,

Pour en ajouter un à la panoplie :
c.Value = Left(c.Value, Len(c.Value) - 1)
;-))
Par ailleurs, afin de "raccourcir" on peut utiliser "Replace" à la place de
"Application.Substitute".
;-))
Bravo en tout cas pour toutes tes interventions.
Bien amicalement
Michel



"DanielCo" a écrit dans le message de
news:iurtpl$79a$
Essaie :

Sub test()
Dim c As Range, Tabl
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If InStr(1, c.Value, "%") > 0 Then
c.Value = Application.Substitute(c.Value, " %", "%")
Tabl = Split(c.Value, " ")
For i = 0 To UBound(Tabl)
If InStr(1, Tabl(i), "%") > 0 Then
Tabl(i) = ""
End If
Next i
c.Value = Join(Tabl, " ")
c.Value = Application.Substitute(c.Value, Chr(160), "")
c.Value = Application.Trim(c.Value)
c.Value = Application.Clean(c.Value)
End If
Next c
End Sub

Daniel


Merci beaucoup Daniel pour ta réponse, tous les pourcentages sont
supprimés et c'est super par contre j'ai toujours quelques espaces
derrière chaque mot alors qu'il m'en faudrait aucun....

Peux tu m'aider à nouveau?

Merci




Avatar
DanielCo
Essaie comme ceci :

Sub test()
Dim c As Range, Tabl, Sh As Worksheet
For Each Sh In Worksheets
For Each c In Sh.Range(Sh.[A1], Sh.Cells(Sh.Rows.Count,
1).End(xlUp))
If InStr(1, c.Value, "%") > 0 Then
c.Value = Application.Substitute(c.Value, " %", "%")
Tabl = Split(c.Value, " ")
For i = 0 To UBound(Tabl)
If InStr(1, Tabl(i), "%") > 0 Then
Tabl(i) = ""
End If
Next i
c.Value = Join(Tabl, " ")
c.Value = Application.Substitute(c.Value, Chr(160), "")
c.Value = Application.Trim(c.Value)
c.Value = Application.Clean(c.Value)
End If
Next c
Next Sh
End Sub

Daniel


Formidable ça marche ! Une dernière requête ça ne marche que sur une
feuille....serait-il possible que ça le fasse sur toutes les feuilles
du classeur?

Encore merci pour tout
Avatar
MichD
Bonjour,

Si c'est pour enlever un espace avant ou après l'expression, tu peux
encore raccourci en utilisant :
c.Value = Trim(c.Value)

;-)

MichD
--------------------------------------------
Avatar
Maude Este
Bonsour®

"MichD" a écrit
Si c'est pour enlever un espace avant ou après l'expression, tu peux
encore raccourci en utilisant :
c.Value = Trim(c.Value)



!!!!! Faire Attention à la différence dans la formulation TRIM
c.Value = Trim(c.Value) ' ----------fonction VBA
ou
c.Value = Application.Trim(c.Value) '----Fonction de feuille de calcul

Trim(VBA) supprime les espaces avant ET après.
_ _ AB _ _ _ _ CD_ _(12 caractères) devient AB_ _ _ _CD (8 caractères)

Application.Trim(Formule EXCEL) est équivalent US de la fonction de feuille de
calcul SUPPRESPACE
supprime les espaces avant ET après
MAIS AUSSI les espaces redondants à l'intérieur de la chaine passée en
paramètre.
_ _ AB _ _ _ _ CD_ _(12 caractères) devient AB_CD (5 caractères)
1 2