XL 2019 Supprimer des chIffres dans une cellules en VBA

eduraiss

XLDnaute Accro
Bonjour le forum

Je joins un fichier avec les explications

J'aimerais si possible avoir un code VBA me permettant de supprimer les chiffres et l'espace dans une cellule (à ma droite du texte)

Merci de votre aide
 

Pièces jointes

  • Eric 1.xlsx
    10.4 KB · Affichages: 19

eduraiss

XLDnaute Accro
Re le forum
Bonjour youky (BJ)

Merci de votre retour
Cela fonctionne quand je tape un noms cela supprime le chiffre et l'espace.
Mais ma demande n'est pas tout a fait celle là
En colonne A j'ai plus de 400 noms avec des chiffre voir pas
Il me faudrait un automatisation qui supprime les chiffres et les espaces sur les 400 noms
Merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @eduraiss , @youky(BJ) @dysorthographie , le Forum

Sans faire plus de contrôles en me basant strictement sur l'exemple fourni, à savoir un seul chiffre en fin de string, et en partant du principe aussi d'un seul espace...

Un mini algo comme ceci devrait faire l'affaire :

VB:
Sub Cleaner()
Dim Plage As Range, Cell As Range

Set Plage = Range("A2:A500")
For Each Cell In Plage
    If IsNumeric(Right(Cell.Value, 1)) = True Then
        If Mid(Cell.Text, Len(Cell.Text) - 1, 1) = " " Then
        Cell.Value = Left(Cell.Text, Len(Cell.Text) - 2)
        End If
    End If
Next Cell
End Sub

Bonne journée
@+Thierry
 

patricktoulon

XLDnaute Barbatruc
bonjour à tous
si il n'y a pas de chiffre ailleurs qu'a droite que tu voudrais éventuellement garder tu peux prendre un raccourci
VB:
Sub test()
With Range("A1", Cells(Rows.Count, "A").End(xlUp)).Cells
For i = 0 To 9: .Replace i, "": Next
End With
End Sub
en gros dans cet exemple je fait 9 replacements global au lieu de 18 replacement du right(value,1)
ça permet aussi de ne pas avoir a contrôler le right(1) ou 2 etc..au cas ou ce serait un nombre et pas qu'un chiffre
 

patricktoulon

XLDnaute Barbatruc
re
là encore on peut faire tout d'un coup: nombre ou chiffre ,1 espaces ou 36
astuce a don patrico de lavega ;)
VB:
Sub test()
With Range("A1", Cells(Rows.Count, "A").End(xlUp)).Cells
addr = .Address(0, 0)
For i = 0 To 9: .Replace i, "": Next
.Value = Evaluate("IF(ISTEXT(" & addr & "),LEFT(" & addr & ",FIND(""§"",SUBSTITUTE(" & addr & ",RIGHT(TRIM(" & addr & "),1),""§"",LEN(" & addr & ")-LEN(SUBSTITUTE(" & addr & ",RIGHT(TRIM(" & addr & "),1),""""))),1))," & addr & ")")
End With
End Sub

demo4.gif
 

patricktoulon

XLDnaute Barbatruc
re
une version encore plus simple
VB:
Sub test()
    With Range("A1", Cells(Rows.Count, "A").End(xlUp)).Cells
         For i = 0 To 9: .Replace i, "": Next
        .Value = Evaluate("index(TRIM(" & .Address(0, 0) & "),)")
    End With
End Sub
je suis un peu long a la détente ce matin ;)
 

Discussions similaires

Réponses
10
Affichages
391

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390