Macro VBA / formule pour ajouter des espaces fixes dans une cell

Résolu/Fermé
totocochcoch Messages postés 3 Date d'inscription lundi 29 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014 - 29 sept. 2014 à 18:22
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 30 sept. 2014 à 17:36
Bonjour à tous,

j'ai pas mal regardé les forums mais je ne trouve pas exactement ce que je recherche, peut être que l'un d'entre vous pouvez peut-être m'aider :

j'ai une chaine de caractère dans une cellule (chiffres + lettres) et je souhaite pouvoir visualiser des espaces à des endroits bien précis sans avoir à taper les espaces.

mes cellules contiennent uniquement 16 caractères (des chiffres + lettres)
ex : je saisis 1CV5ALPVD5V37410 et je souhaite que dans mon fichier les cellules apparaissent toujours découpées comme suit : 1CV5 AL P VD 5 V3 74 10 ce découpage ne change pas --> 3 c" "2 c" "1 c" "2 c" "1 c" "2 c" "2 c" "2 c

si je n'avais que des chiffres, je pourrais faire un format personnalisé sans aucun problème, mais le fait qu'il y ait des chiffres et/ou des lettres, ce n'est pas possible...

Merci par avance pour une quelconque aide de votre part.
A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
29 sept. 2014 à 18:47
Bonjour,

Avec cette fonction sur une autre colonne tu obtiens ta présentation pour ton code en A1 :

=STXT(A1;1;4)&" "&STXT(A1;5;2)&" "&STXT(A1;7;1)&" "&STXT(A1;8;2)&" "&STXT(A1;10;1)&" "&STXT(A1;11;2)&" "&STXT(A1;13;2)&" "&STXT(A1;15;2)

Pour le faire sur la même cellule, il faut passer par une macro, me semble-t-il.
0
totocochcoch Messages postés 3 Date d'inscription lundi 29 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
30 sept. 2014 à 10:33
Bonjour,

Wahou quelle rapidité ! merci beaucoup Gbinforme pour votre aide mais je recherche la solution pour le faire dans la même cellule à l'aide d'une macro si c'est possible.

Merci pour votre aide.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 sept. 2014 à 11:04
Bonjour,

dans la même cellule à l'aide d'une macro

Voici la macro à copier dans la feuille concernée :

Private Sub Worksheet_Change(ByVal sel As Range)
If Not Intersect(sel, Range("A:A")) Is Nothing Then
    Dim frm() As Variant, idx As Integer, pos As Integer, man As String
    frm = Array(4, 2, 1, 2, 1, 2, 2, 2)
    If Len(sel.Value) = 16 Then
        Application.EnableEvents = False
        For idx = 0 To UBound(frm)
            man = man & Mid(sel.Value, pos + 1, frm(idx)) & " "
            pos = pos + frm(idx)
        Next idx
        sel.Value = Left(man, Len(man) - 1)
        Application.EnableEvents = True
    End If
End If
End Sub

Tu remplaces "A:A" par la colonne où tu saisi ton code.
Il faut que les 16 caractères soient saisis et si la mise en forme à été effectuée il n'y a pas de formatage en correction.
0
totocochcoch Messages postés 3 Date d'inscription lundi 29 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
30 sept. 2014 à 14:28
ça fonctionne parfaitement, merci beaucoup ça m'aide énormément.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 sept. 2014 à 17:36
Content pour toi de t'avoir dépanné : je marque en résolu.
0