Traitement dans une cellule: Supprimer un caractère précis.

  • Initiateur de la discussion Initiateur de la discussion shmider
  • Date de début Date de début

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 !

shmider

XLDnaute Occasionnel
Bonjour,
Comme le titre l'indique, je souhaite purger une gigantesque base de données, et qui contient des cellules avec des chiffres qui me bloque pour mon traitement.
En effet, mon problème se résume comme suite:

Dans des Cellules données, j'ai:
XXXX YYY ZZZZ 56
ccc aa uu 1
c ggg uu ooo 2
d dddd dd ddd 1

Alors, j'aimerai pouvoir enlever ces chiffres qui se retrouvent tous à la fin de chaque donnée de cellule.

Merci pour votre aide.
@+
 
Re : Traitement dans une cellule: Supprimer un caractère précis.

Bonjour pierrejean,
Bonjour JNP,
Bonjour homepyrof53,
Bonjour david84,
Bonjour laetitia90,

Je tiens à m'excuser tout d'abord car je n'ai pas pu donner suite à vos réponses qui m'ont et comme d'habitude très utiles.
Oui, pierrejean et JNP, vos solutions me vont super bien 😉
Merci aux autres vous etes magnifiquement réactifs 🙂

Bonne continuation à vous.

PS: Résolu à merveille !

@+
 
Dernière édition:
Re : Traitement dans une cellule: Supprimer un caractère précis.

Bonjour le fil,

Une solution bien tardive qui combine formule matricielle et VBA :

Code:
Sub SupprimeChiffres() 'supprime les chiffres et espaces [COLOR="Red"]à la fin du texte[/COLOR]
Dim plage As Range, cel As Range
Application.ScreenUpdating = False
Application.Calculation = xlManual 'évite le recalcul des formules
Range("B:B").ClearContents 'si nécessaire...
Set plage = Range("B1:B" & Range("A65536").End(xlUp).Row) 'plage de restitution
For Each cel In plage
cel.FormulaArray = "=LEFT(RC1,LEN(RC1)-MAX(IF(ISNUMBER(1*RIGHT(RC1,ROW(INDIRECT(""1:""&LEN(RC1))))),ROW(INDIRECT(""1:""&LEN(RC1))))))"
Next
plage = plage.Value 'ne conserve que les valeurs
Application.Calculation = xlAutomatic
End Sub

Les données à traiter sont en colonne A, la restitution en colonne B.

pierrejean 🙂 qu'est-ce que ça donne en temps de calcul ? Je crains que ce ne soit pas bon...

A+
 
Re : Traitement dans une cellule: Supprimer un caractère précis.

Re,

Sans boucle c'est forcément plus rapide, à voir :

Code:
Sub SupprimeChiffres() 'supprime les chiffres et espaces à la fin du texte
Dim plage As Range
[B:B].ClearContents 'si nécessaire...
[B1].FormulaArray = "=LEFT(RC1,LEN(RC1)-MAX(IF(ISNUMBER(1*RIGHT(RC1,ROW(INDIRECT(""1:""&LEN(RC1))))),ROW(INDIRECT(""1:""&LEN(RC1))))))"
Set plage = Range("B2:B" & Range("A65536").End(xlUp).Row) 'plage de restitution
[B1].Copy plage
plage = plage.Value 'ne conserve que les valeurs
[B1] = [B1].Value
End Sub

A+
 
Dernière édition:
Re : Traitement dans une cellule: Supprimer un caractère précis.

Re

Mon cher Job :resultat des essais

Ta derniere macro sur colonne A avec resultat en colonne B : 2,67 secondes
La macro de notre ami ROGER (lettres) sur colonnes A et B avec resultats en place: 1,16 seconde
 
- 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
Retour