Formatage spécial d'une chaine

Bonjour à tous,

Dans un premier temps, je voudrais formater une sous-chaîne extraite d'une chaîne plus grande, par formule.

Ensuite, le code sera appliqué de telle sorte qu'il formate la saisie de la même forme de la sous-chaîne Xn (Ym-Ym), dans la même colonne.

Voici un exemple qui peut mieux illustrer ma demande :

Merci d'avance.

Bonjour,

Juste pour rigoler, la formule qui extrait directement ce que tu attends.

=SUBSTITUE(SUBSTITUE(STXT(B12;TROUVE("REG";B12)+4;TROUVE(")";B12)-TROUVE("REG";B12)+4);"(";"(F");"-";"-F")

Pour le formatage en indice par contre, la formule ne fera rien ;)

Bonjour JouyeuxNoel,

Merci pour la formule

Pour le formatage en indice par contre, la formule ne fera rien ;)


Je pense, qu'il faut récupérer la valeur de la cellule résultante de la formule, afin qu'on puisse formater avec l'indice.

De cette façon, si je ne me trompe pas, même si on saisie dans la forme de la chaîne, celle-ci sera formatée.

Normalement dans quelques minutes l'ami Curulis t'aura pondu un truc qui génère toute ta colonne au double clic quelque part ^^

bonjour,

non sum Curulis, sed hic rogatio

Sub formatage(r As Range)
    t = r.Value
    For i = 1 To Len(r)
        If Mid(t, i, 1) Like "#" Then
            If Mid(t, i - 1, 1) Like "[A-Z,0-9]" Then
            Else
                t1 = t1 & "F"
            End If
        End If
        t1 = t1 & Mid(t, i, 1)
    Next
    r = t1
    For i = 1 To Len(t1)
        If Mid(r, i, 1) Like "#" Then
            r.Characters(i, 1).Font.Subscript = True
        End If
    Next i
End Sub
Sub aargh()
'formatage des infos en colonne G
    dl = Cells(Rows.Count, "G").End(xlUp).Row
    For i = 1 To dl
        If Cells(i, "G") <> "" Then formatage (Cells(i, "G"))
    Next i
End Sub

Pas possible à ma connaissance de se passer de VBA et formater les caractères d'une cellule qui contient une formule sans perdre la formule.

salve h2o4,

Merci pour le code.

Pas possible à ma connaissance de se passer de VBA et formatter les caractères d'une cellule qui contient une formule sans perdre la formule.


Cette solution s'applique donc à la suite de l'utilisation de la formule.

Ensuite, on aura besoin d'un autre code, qui formate l'entrée une fois validée ?

re-bonjour,

la macro "aargh" formate les chaines présentes en colonne G, qu'elles soient le résultat d'une formule ou le résultat d'une introduction manuelle. Après formatage, les formules en colonne G sont remplacées par leur résultat.

Re,

Ne peut-on pas le faire une fois l'entrée validée ?

Ne peut-on pas le faire une fois l'entrée validée ?

oui, c'est possible. Mais il faut alors que tu nous dises sur quelle(s) feuille(s) et pour quelle(s) colonne(s).

voici un exemple, pour une modification en colonne G sur feuil1

Re,

* Manque-t-il une instruction après cette ligne de if :

            If Mid(t, i - 1, 1) Like "[A-Z,0-9]" Then
            Else
                t1 = t1 & "F"
            End If

* Dans mes tests, si je saisis :

b4 (1-2)

elle sera formatée comme cela :

bF4 (F1-F2) avec les nombres en indice bien sur.

Sinon, si je saisis B4 (1-2), là le formatage sera juste : B4 (F1-F2)

re-bonjour,

j'ai fait l'hypothèse qu'il n'y avait que des majuscules. voici une adaptation pour prendre en compte les minuscules.

If Mid(t, i - 1, 1) Like "[A-Z,0-9,a-z]" Then

Mais il faut alors que tu nous dises sur quelle(s) feuille(s) et pour quelle(s) colonne(s).

Tout d'abord, dans la colonne C, je dois extraire une sous-chaîne de la colonne H, et supprimer cette dernière par la suite, pour ne pas l'avoir.

Dans un deuxième temps, la sous-chaîne mentionnée sera directement saisie dans la nouvelle colonne Reg/Paire.

Mais tout ce qui se trouve dans la colonne C, doit être spécialement formaté comme suit :

Xn (Fn-Fn)

Voici un exemple

Rechercher des sujets similaires à "formatage special chaine"