Microsoft 365 Mettre en gras uniquement les chiffres

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonjour le forum,

je sais pas si c'est possible, mais je souhaiterai pouvoir mettre en gras uniquement les chiffres contenu dans une forme

ci joint un fichier avec un exemple

merci d'avance pour vos lumières

pa66
 

Pièces jointes

Dernière édition:
Solution
Bonjour pat66,

Le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v1$, L1%, v2$, L2%, v3$, L3%, x$, i%, L%
v1 = [C7].Text: L1 = Len(v1)
v2 = [C11].Text: L2 = Len(v2)
v3 = [C9].Value: L3 = Len(v3)
x = "Article en promotion à " & v1 & ", soit " & v2 & " en " & v3 & " mensualité" & IIf(v3 > 1, "s", "")
With Shapes("Rectangle 1").TextFrame
    .Characters.Text = x
    For i = 1 To Len(x)
        L = 0
        If Mid(x, i, L3) = v3 Then L = L3
        If Mid(x, i, L1) = v1 Then L = L1
        If Mid(x, i, L2) = v2 Then L = L2
        If L Then
            With .Characters(i, L).Font
                .Color = vbRed
                .Bold = True
            End With
        End If
    Next i
End With
End Sub
La...
Bonjour
voici le code qui répond au besoin
VB:
Sub ChiffresGras()
    With ActiveSheet.Shapes("Rectangle 1")
        For i = 1 To Len(.TextFrame2.TextRange.Text)
            'MsgBox .TextFrame2.TextRange.Characters(i, 1)
            If IsNumeric(.TextFrame2.TextRange.Characters(i, 1)) Then
                .OLEFormat.Object.Characters(i, 1).Font.Bold = True
            Else
                .OLEFormat.Object.Characters(i, 1).Font.Bold = False
            End If
        Next i
    End With
End Sub
 
Bonjour à tous,

Cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x$, y$
x = Format([C7], "0.00 €")
y = "ceci est une promotion "
With Shapes("Rectangle 2").TextFrame
    .Characters.Text = y & x
    With .Characters(Len(y), Len(x) + 1).Font
        .Color = vbRed
        .Bold = True
    End With
End With
End Sub
s'exécute quand on modifie la cellule C7.

A+
 

Pièces jointes

Dernière édition:
Étant sur mon tél, je n'ai pas ouvert le fichier. 😔


Attention aussi de ne pas inclure du texte que je n'ai pas écrit quand tu me cites. 😉

Screenshot_20250309_135717_Chrome.jpg
 
Dernière édition:
Bonjour à toutes & à tous,
Bonjour @pat66 et tous les participants !
J'ai souvent l'impression de me répéter en le disant mais "j'arrive un peu tard !"
Je te propose une solution avec le prix un préfixe et un suffixe et des mises en forme du texte variées à alléger ou enrichir.
1741528269344.png

L'événement change de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

          If Not Intersect(Target, Union([prix], [Préfixe], [Suffixe])) Is Nothing Then ModifAffiche

End Sub

Le code de modification de la forme :
VB:
Sub ModifAffiche()

     Dim shp As Shape
     LePrix = Trim(Format([prix], "# ###.00 €"))
     Longueur = Len(LePrix)
     Début = Len([Préfixe]) + 2
    
     Set shp = Feuil1.Shapes("Affiche")
     With shp.TextFrame2.TextRange
          .Text = [Préfixe] & " " & LePrix & " " & [Suffixe]
          With .Characters(Début, Longueur).Font
               .Size = 24
               .Bold = msoCTrue
               .Italic = msoCTrue
               .Fill.ForeColor.RGB = RGB(0, 0, 255)
               .UnderlineStyle = msoUnderlineHeavyLine
          End With
     End With
 
 
End Sub
 

Pièces jointes

Re,
Bon, tu recomposes le texte à ta guise, tu peux même ajouter d'autre partie de texte, tu as le principe et tu peux assez facilement l'adapter.
Pour le pourcentage voilà la modif (je suppose qu'après tu vas me demander de rehausser aussi le pourcentage et de mettre un prix barré, mais je te laisse chercher un peu 😉).
VB:
Sub ModifAffiche()

     Dim shp As Shape
     LePrix = Trim(Format([prix], "# ###.00 €"))
     Longueur = Len(LePrix)
    
     Texte = [Préfixe] & " " & Format([Suffixe], "0%")
     Début = Len(Texte) + 2
    
     Set shp = Feuil1.Shapes("Affiche")
     With shp.TextFrame2.TextRange
          .Text = Texte & " " & LePrix
          With .Characters(Début, Longueur).Font
               .Size = 24
               .Bold = msoCTrue
               .Italic = msoCTrue
               .Fill.ForeColor.RGB = RGB(0, 0, 255)
               .UnderlineStyle = msoUnderlineHeavyLine
          End With
     End With

End Sub

Voir fichier joint
À bientôt
 

Pièces jointes

Bonjour le forum,

bonjour le fil,
bonjour crocrocro
bonjour job75
bonjour AtTheOne

Ce n'était pas prévu, mais j'ai du ajouter des valeurs numériques à la macro,

Cela fait 2 jours que je galère, j'ai bien essayer avec les solutions de crocrocro et job75, mais je n'y arrive pas, quelqu'un aurait t'il la gentillesse de corriger mes erreurs.
j'ai mis un exemple de ce que je souhaiterai avoir visuellement

un grand merci d'avance
 

Pièces jointes

Dernière édition:
Bonjour pat66,

Le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v1$, L1%, v2$, L2%, v3$, L3%, x$, i%, L%
v1 = [C7].Text: L1 = Len(v1)
v2 = [C11].Text: L2 = Len(v2)
v3 = [C9].Value: L3 = Len(v3)
x = "Article en promotion à " & v1 & ", soit " & v2 & " en " & v3 & " mensualité" & IIf(v3 > 1, "s", "")
With Shapes("Rectangle 1").TextFrame
    .Characters.Text = x
    For i = 1 To Len(x)
        L = 0
        If Mid(x, i, L3) = v3 Then L = L3
        If Mid(x, i, L1) = v1 Then L = L1
        If Mid(x, i, L2) = v2 Then L = L2
        If L Then
            With .Characters(i, L).Font
                .Color = vbRed
                .Bold = True
            End With
        End If
    Next i
End With
End Sub
La macro se déclenche quand on modifie ou valide une cellule quelconque.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour