Espacer les lettres d'un mot avec une contrainte liée à des chiffres

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

poulie

XLDnaute Impliqué
Bonjour à tous (il y a longtemps...),

Je souhaiterais insérer des espaces entre chaque lettre d'un code. J'ai bien repris une macro de M Boisgontier mais ne peux pas l'appliquer à cause de chiffres.
Lorsqu'il y a un chiffre, je souhaite qu'il n'y ait pas d'espace entre ce chiffre et la lettre précédente

J'ai inséré un classeur avec un exemple de ce que je souhaite.

Merci de bien vouloir m'aider
 

Pièces jointes

Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

Bonjour,

a tester

VB:
Function espace1(mot)
    For i = 1 To Len(mot)
        On Error Resume Next
        If Asc(Mid(mot, i + 1, 1)) >= "48" And Asc(Mid(mot, i + 1, 1)) <= "57" Then
            temp = temp & Mid(mot, i, 1) & Mid(mot, i + 1, 1) & " "
            i = i + 1
        Else
            temp = temp & Mid(mot, i, 1) & " "
        End If
    Next
    espace1 = temp
End Function
 
Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

Bonsoir gilbert_RGI,

Je viens de tester ta proposition et cela fonctionne très bien. Tu vas me faire gagner un temps plus que notable.

Je te remercie bien
 
Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

Bonjour à vous 2

j'ai un doute sur la fonction d'origine : Est-ce qu'elle n'ajoute pas un espace en fin de mot?

Code:
Function espace(mot)
  For i = 1 To Len(mot) - 1
    temp = temp & Mid(mot, i, 1)
    If Not IsNumeric(Mid(mot, i + 1, 1)) Then temp = temp & " "
Next i
  espace = temp + Mid(mot, i, 1)
End Function
 
Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

pour remédier au vide terminal

VB:
Function espace1(mot)
    For i = 1 To Len(mot)
        On Error Resume Next
        If Asc(Mid(mot, i + 1, 1)) >= "48" And Asc(Mid(mot, i + 1, 1)) <= "57" Then
            temp = temp & Mid(mot, i, 1) & Mid(mot, i + 1, 1) & " "
            i = i + 1
        Else
            temp = temp & Mid(mot, i, 1) & " "
        End If
    Next
    espace1 = Left(temp, Len(temp) - 1)
End Function
 
Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

Bonjour gilbert_RGI, ERIC S, Bonjour à tous,

Quel impact aurait eu cette "non remarque d'ERIC S et modification"?. Sans user de votre temps avez-vous la possibilité de m'expliquer cette macro même de façon succincte (car je suis novice ++).

Merci encore de m'avoir aidé.

Edit:

J'aurais du le préciser mais lorsqu'il y a des cellules vides j'ai un message d'erreur (#VALEUR). Du fait que je travaille ces extractions, ces valeurs d'erreur sont gênantes à moins que je les élimine manuellement ou une formule. Est-ce qu'il y a possibilité d'avoir une cellule vide après l'extraction si la cellule initiale n'est pas renseignée? L'exemple est sur la feuille essai2

Merci
 

Pièces jointes

Dernière édition:
Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

J'aurais du le préciser mais lorsqu'il y a des cellules vides j'ai un message d'erreur (#VALEUR). Du fait que je travaille ces extractions, ces valeurs d'erreur sont gênantes à moins que je les élimine manuellement ou une formule. Est-ce qu'il y a possibilité d'avoir une cellule vide après l'extraction si la cellule initiale n'est pas renseignée? L'exemple est sur la feuille essai2

Merci

En retard mais le comparatif d'ERIC S semble bon

@ plus
 
Re : Espacer les lettres d'un mot avec une contrainte liée à des chiffres

Bonjour à tous,

Pourquoi ne pas tout simplement modifier légèrement la fonction de Boisgontier :

Code:
Function espace(mot)
For i = 1 To Len(mot)
  temp = temp & Mid(mot, i, 1) & IIf(IsNumeric(Mid(mot, i + 1, 1)), "", " ")
Next i
espace = RTrim(temp)
End Function
A+
 
- 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