Bonjour,
J'ai un petit soucis pour la mise en forme de ma feuille.
J'ai une variable texte que je met dans une cellule, j'aimerais mettre une partie seulement de ce texte en gras.
je ne vois vraiment pas comment faire![]()
vous avez une idée ?
merci
Bonjour,
J'ai un petit soucis pour la mise en forme de ma feuille.
J'ai une variable texte que je met dans une cellule, j'aimerais mettre une partie seulement de ce texte en gras.
je ne vois vraiment pas comment faire![]()
vous avez une idée ?
merci
- Après avoir copié ta variable dans la cellule, tu peux utiliser la fonction ci-dessous pour mettre en gras la partie voulu du texte
la méthode Characters() est équivalente du Mid(taChaine,debutLecture,NbreDeCaractère)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Feuil1.Cells(6, 4).Characters(Start:=2, Length:=3).Font.FontStyle = "Gras"
Pour te l'écrire, j'ai utilisé l'enregistreur macro (comme dit bbil) écrémé de tout les superflus (.select, .activecell ...)![]()
Ah oui, pas bête en effet ^^
j'y avait pas du tout pensé :s
Alors en fait, j'ai fait une macro avec l'editeur et j'ai modifié le code qu'il ma donné pour l'integrer a mon "projet".
ce qui donne:
La fonction prend pour argument le numéro de ligne et la collone de la case à mettre en gras.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Function mise_en_gras(ligne As Integer, collone As String) Cells(ligne, collone).Select var = Split(Cells(ligne, collone), "@@") Cells(ligne, collone).Value = var(0) & var(1) debut = Len(var(0)) fin = Len(Cells(ligne, collone)) With ActiveCell.Characters(Start:=0, Length:=fin).Font .Name = "Arial" .FontStyle = "Gras" End With With ActiveCell.Characters(Start:=debut, Length:=fin).Font .Name = "Arial" .FontStyle = "Normal" End With End Function
le texte dans la case est composé de cette maniére:
" blablablabla a mettre en gras @@ blablabla normal "
Ma fonction va mettre en gras la premiére partie du texte et laisser la seconde comme elle est. ( en plus d'enlever les deux @ qui trainent...)
bref, merci Bbil et okitotete, merci l'editeur de macro![]()
lolEnvoyé par bbil
![]()
Mais c'est tellement vrai !! il sert bien dans ces cas là ce petit enregistreur![]()
Juste en complément du sujet
Oui, les macros sont très très utiles; il faut toutefois bien assimiler le code généré et l'adapter à son cas :
exple d'attention à prêter aux macros
- l'utilisation de Select (à éviter car trop sensible aux manipulation de l'utilisateur)
- les performances : dans ton cas la mise en forme en "normal" est une étape non nécessaire (car par défaut à moins d'un formatage différent de ta feuille)
- ...
la fonction pourrait aussi, éventuellement, s'écrire ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Function mise_en_gras(ligne As Integer, collone As String) Var = Split(Cells(ligne, collone), "@@") Cells(ligne, collone).Value = Var(0) & Var(1) Cells(ligne, collone).Characters(Start:=Len(Var(0)), Length:=Len(Cells(ligne, collone))).Font.FontStyle = "Gras" End Function
Ouhlaa oui, en effet, sa change !
j'était trop content que le code fonctionne que j'ai pas pensé a l'optimiser
j'ai rechangé les limites pour ne mettre en gras que le debut ( var(0) ) du message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Function mise_en_gras(ligne As Integer, collone As String) var = Split(Cells(ligne, collone), "@@") Cells(ligne, collone).Value = var(0) & var(1) Cells(ligne, collone).Characters(Start:=0, Length:=Len(var(0))).Font.FontStyle = "Gras" End Function![]()
Ci-dessous un lien vers le tutoriel de J-M Rabilloud (pdf à télécharger) très intéressant très:
http://vb.developpez.com/cours/#app_office
Partager