SUPPRIMER CERTAINS CARACTERE D'UNE CELLULE

Le
elodie005
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23524581
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
DanielCo
Le #23524661
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
elodie005
Le #23529811
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
DanielCo
Le #23530021
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
elodie005
Le #23530411
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
Péhemme
Le #23530581
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" 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




DanielCo
Le #23530731
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" 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




DanielCo
Le #23530721
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
MichD
Le #23530931
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
--------------------------------------------
Maude Este
Le #23532661
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)
Publicité
Poster une réponse
Anonyme