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:

Staple1600

XLDnaute Barbatruc
Re

Adapté d'une formule de R@chid
Elle ne fait pas le job demandé, mais comme je la trouve jolie, je publie
(mais je sens qu'elle pourrait te servir, Lionel, non ? )
La formule en B2
Code:
=SIERREUR(INDEX(FILTRE.XML("<a><b>"&SUBSTITUE($A1;" ";"</b><b>")&"</b></a>";"//b");COLONNES($C:C));"")
A valider matriciellement pour Excel 2013
Recopie vers la droite puis vers le bas
 

patricktoulon

XLDnaute Barbatruc
Bonsoir
ça pourrait être la petite sœur de SUBSTITUEX

VB:
Function SubstituePos(ByVal Cell As Range, ByVal Char As String, Optional ByVal arrays As Variant = "")
 'patrictoulon
Dim t,i&: t = Split(Cell.Text, " ")
    If Not IsArray(arrays) Then
        arrays = Evaluate("COLUMN(" & Cells(1).Resize(, UBound(t) + 1).EntireColumn.Address(0, 0) & ")")
    Else
        arrays = Application.Transpose(arrays)
    End If
    For i = 0 To UBound(t):        t(i) = t(i) & arrays(i&+ 1):    Next
    SubstituePos = Join(t, "")
End Function


juste comme ça en passant
bien sur on peut laisser des item vide "" si on veut le nieme etc......
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
merci JM pour ce que tu fais pour moi. Je prends aussi cette formule
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Merci Patrick, je regarde dès que j'ai un moment
 

job75

XLDnaute Barbatruc
Bonjour Lionel, le fil, le forum,

A partir d'Excel 2016 je crois il existe la fonction JOINDRE.TEXTE.

Voyez le fichier joint et cette formule matricielle en B1 :
Code:
=JOINDRE.TEXTE("";VRAI;SIERREUR(STXT($A1;deb;fin-deb)&rang;""))
Il faut auparavant sélectionner B1 et définir les 4 noms mat deb fin rang comme indiqué.

A+
 

Pièces jointes

  • Classeur(1).xlsx
    10.4 KB · Affichages: 4

Discussions similaires

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