Espace à insérer dans un texte d'une cellule

Fermé
BINIOU - 19 juil. 2010 à 20:55
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 19 juil. 2010 à 23:55
Bonjour,
J'ai un texte dans une cellule du genre 8a7m4a2m .Quelle fonction via VisualBasic me permettrait d'arriver à ceci. 8a 7m 4a 2m (le nbre de paires chiffre-lettre n'est pas constant ds la cellule).Merci d'avance


2 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 950
Modifié par Mytå le 19/07/2010 à 23:17
Salut le forum

Tu sélectionnes la cellule à convertir et tu lances la macro.

Sub Insert_Space() 
    Dim i As Integer 
    Dim Cible As String 
     
With Selection 
    Cible = .Value 
     
    For i = Len(Cible) To 2 Step -1 
        If IsNumeric(Mid(Cible, i, 1)) Then 
        Cible = Left(Cible, i - 1) & " " & Right(Cible, Len(Cible) - i + 1) 
        End If 
    Next i 
     
    .Value = Cible 
End With 

End Sub 


Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
19 juil. 2010 à 23:55
bonjour

Je ne connais pas de fonction VBA qui fournisse ton résultat mais je te propose une fonction personnalisée à mettre dans une autre colonne, avec copie du résultat en valeur éventuellement sur la colonne de base.

Public Function format_cellule(cellule)
Dim c As Integer
Application.Volatile
format_cellule = ""
cellule = Replace(cellule, " ", "")
For c = 1 To Len(cellule) Step 2
format_cellule = format_cellule & Mid(cellule, c, 2) & " "
Next c
format_cellule = RTrim(format_cellule)
End Function

Sur la feuille, tu mets =format_cellule(A1) par exemple pour l'appeler.
0