XL 2019 Supprimer des chIffres dans une cellules en VBA

  • Initiateur de la discussion Initiateur de la discussion eduraiss
  • 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 !

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

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
 
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
 
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
 
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
 
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 😉
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Formule excel
Réponses
7
Affichages
178
Réponses
10
Affichages
460
Réponses
3
Affichages
117
Retour