XL 2019 Ajouter du texte formaté à une cellule non vide

Horusbk

XLDnaute Junior
Bonjour,

J'ai ce code qui permet d'ajouter un texte spécifique dans une cellule non vide.

Code:
Sub ajout1()
Dim TxT As String
TxT = " X"
'
If Right(Feuil1.Range("C3"), 1) <> "X" Then
    Feuil1.Range("C3").Value = Feuil1.Range("C3") & TxT
Else
    MsgBox "Le dernier caractère est " & Right(Feuil1.Range("C3"), 1)
End If
'
End Sub

Je cherche à formater ma variable TxT de sorte que le texte ajouté soit dans une police différente que celle de la cellule où ce texte est ajouté.
Comment pourrais-je y parvenir ?

Merci d'avance de votre aide.
Baptiste
 

Pièces jointes

  • Baptiste_ajout_texte.xlsm
    17 KB · Affichages: 7
Solution
Bonjour Jacky67,
Merci pour votre réponse.

Une question me vient lorsque je vois votre bout de code :
VB:
With .[c3].Characters(Start:=Len(.[c3]) + 1 - Len(TxT), Length:=Len(TxT)).Font

Je sais qu'on peut écrire cela :
Code:
Range("C" & x )
où 'x' correspond à un nombre par exemple.

Dans votre code, la référence de la cellule 'c3' se trouve entre crochets. Peut-elle être remplacée par une variable comme précédemment ? Comme ça je peux ajouter mon caractère à une cellule spécifique que j'aurais déterminée en amont de ma procédure.

Merci d'avance,
Baptiste
RE...
En adaptant la ligne de destination..."Lig" dans l'exemple
VB:
Sub ajout1()
    Dim TxT As String, Lig&
    TxT = " X"
    Lig = 5    ' lig = la ligne de destination...

Jacky67

XLDnaute Barbatruc
Bonjour,
Je cherche à formater ma variable TxT de sorte que le texte ajouté soit dans une police différente que celle de la cellule où ce texte est ajouté.
Comment pourrais-je y parvenir ?

Merci d'avance de votre aide.
Baptiste
Bonjour,
Pour formater le texte ajouté....
Ceci peut-être
VB:
Sub ajout1()
    Dim TxT As String
    TxT = " X"
    If Right(Feuil1.Range("C3"), 1) <> "X" Then
        With Feuil1
            .Range("C3").Value = .Range("C3") & TxT
            With .[c3].Characters(Start:=Len(.[c3]) + 1 - Len(TxT), Length:=Len(TxT)).Font
                .Name = "Arial"
                .FontStyle = "Gras italique"
            End With
        End With
    Else
        MsgBox "Le dernier caractère est " & Right(Feuil1.Range("C3"), 1)
    End If
End Sub
 

Horusbk

XLDnaute Junior
Bonjour Jacky67,
Merci pour votre réponse.

Une question me vient lorsque je vois votre bout de code :
VB:
With .[c3].Characters(Start:=Len(.[c3]) + 1 - Len(TxT), Length:=Len(TxT)).Font

Je sais qu'on peut écrire cela :
Code:
Range("C" & x )
où 'x' correspond à un nombre par exemple.

Dans votre code, la référence de la cellule 'c3' se trouve entre crochets. Peut-elle être remplacée par une variable comme précédemment ? Comme ça je peux ajouter mon caractère à une cellule spécifique que j'aurais déterminée en amont de ma procédure.

Merci d'avance,
Baptiste
 

Jacky67

XLDnaute Barbatruc
Bonjour Jacky67,
Merci pour votre réponse.

Une question me vient lorsque je vois votre bout de code :
VB:
With .[c3].Characters(Start:=Len(.[c3]) + 1 - Len(TxT), Length:=Len(TxT)).Font

Je sais qu'on peut écrire cela :
Code:
Range("C" & x )
où 'x' correspond à un nombre par exemple.

Dans votre code, la référence de la cellule 'c3' se trouve entre crochets. Peut-elle être remplacée par une variable comme précédemment ? Comme ça je peux ajouter mon caractère à une cellule spécifique que j'aurais déterminée en amont de ma procédure.

Merci d'avance,
Baptiste
RE...
En adaptant la ligne de destination..."Lig" dans l'exemple
VB:
Sub ajout1()
    Dim TxT As String, Lig&
    TxT = " X"
    Lig = 5    ' lig = la ligne de destination
    With Feuil1
        If Right(.Range("C" & Lig), 1) <> "X" Then
            .Range("C" & Lig).Value = .Range("C" & Lig) & TxT
            With .Range("C" & Lig).Characters(Start:=Len(.Range("C" & Lig)) + 1 - Len(TxT), Length:=Len(TxT)).Font
                .Name = "Arial"
                .FontStyle = "Gras italique"
            End With
        Else
            MsgBox "Le dernier caractère est ''X''"
        End If
    End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 082
Messages
2 085 167
Membres
102 801
dernier inscrit
mrclbl