Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 remplacer les espaces dans une chaine par 123456 etc

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Je cherche une formule pour remplacer les espaces dans une cellule :
(sans faire intervenir la position de l'espace)

Par exemple j'ai :
aaa bbbb ccccc dddeee eeeeeee fff etc

Je voudrais obtenir :
aaa1bbbb2ccccc3dddddd4eeeeeee5fff etc

Auriez-vous la solution ?
Un grand merci,
lionel
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-JM,
Merci ça à l'air super
VB:
Sub Bus()
a = [b2]
b = Split(a)
For i = 0 To UBound(b)
c = c & b(i) & i + 1
Next
MsgBox Left(c, Len(c) - 2)
End Sub
J'ai commencé à la cellule B2
Au lieu d'avoir un MsgBox, on peut avoir le résultat dans une cellule à droite de chaque cellule col B traitée par exemple en col D ?
 

Staple1600

XLDnaute Barbatruc
Re,

La même, mais transformée en fonction personnalisée
VB:
Function outtaspace(r As Range)
Dim i As Byte
b = Split(r.Value2)
For i = 0 To UBound(b)
c = c & b(i) & i + 1
Next
outtaspace = Left(c, Len(c) - 2)
End Function
A utiliser de la sorte
Si on en A1: aaa bbb ccc ddd eee fff
alors en B1, saisir =outtaspace(A1)

Je laisse les formulistes proposer la formule qui se passera de VBA.
 

Staple1600

XLDnaute Barbatruc
Re

Ce sera un peu mieux comme ceci (mais jusqu'à un certain point)
VB:
Function outtaspace(r As Range)
Dim i As Byte
b = Split(VBA.Trim(r.Value2))
For i = 0 To UBound(b)
c = c & b(i) & i + 1
Next
outtaspace = Left(c, Len(c) - 1)
End Function
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…