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

BINIOU -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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