Dernière ligne de texte d'une cellule à mettre en gras
DenPhil
Messages postés
1
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour à toutes et à tous,
un utilisateur me demande une mise en forme particulière :
dans un tableau Excel, qui est mis à jour régulièrement, les cellules d'une colonne contiennent des lignes séparées par un retour à la ligne.
Dans chaque cellule,
la dernière ligne de texte est mise en gras.
Il serait confortable que , lorsque l'utilisateur saisit une nouvelle ligne de texte derrière la précédente, alors :
a) la précédente dernière ligne de texte ne soit plus en gras.
b) la nouvelle dernière ligne de texte soit mise en gras.
exemple :
la cellule contient :
A la claire fontaine,
m'en allant promener
j'ai trouvé l'eau si belle
l'utilisateur rajoute une ligne, et le résultat attendu est :
la cellule contient :
A la claire fontaine,
m'en allant promener
j'ai trouvé l'eau si belle
que je m'y suis baigné
Avez-vous une idée sur la façon la plus subtile d'automatiser ce fonctionnement ?
D'avance je vous en remercie.
Cordialement,
DenPhil
un utilisateur me demande une mise en forme particulière :
dans un tableau Excel, qui est mis à jour régulièrement, les cellules d'une colonne contiennent des lignes séparées par un retour à la ligne.
Dans chaque cellule,
la dernière ligne de texte est mise en gras.
Il serait confortable que , lorsque l'utilisateur saisit une nouvelle ligne de texte derrière la précédente, alors :
a) la précédente dernière ligne de texte ne soit plus en gras.
b) la nouvelle dernière ligne de texte soit mise en gras.
exemple :
la cellule contient :
A la claire fontaine,
m'en allant promener
j'ai trouvé l'eau si belle
l'utilisateur rajoute une ligne, et le résultat attendu est :
la cellule contient :
A la claire fontaine,
m'en allant promener
j'ai trouvé l'eau si belle
que je m'y suis baigné
Avez-vous une idée sur la façon la plus subtile d'automatiser ce fonctionnement ?
D'avance je vous en remercie.
Cordialement,
DenPhil
A voir également:
- Dernière ligne de texte d'une cellule à mettre en gras
- Partage de photos en ligne - Guide
- Texte en gras - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Supprimer dernière page word - Guide
2 réponses
bonjour,
j'ai ce petit bout de macro qui fonctionne mais celà impose de renter les textes en doublecliquant sur la cellule.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim text, ntext As String
Dim l, nl As Integer
text = ActiveCell
l = Len(text)
ntext = InputBox("nouveau texte")
nl = Len(ntext)
ActiveCell.FormulaR1C1 = text & Chr(10) & ntext
Selection.Font.Bold = False
With ActiveCell.Characters(Start:=l + 1, Length:=nl + 1).Font
.FontStyle = "Gras"
End With
End Sub
j'ai ce petit bout de macro qui fonctionne mais celà impose de renter les textes en doublecliquant sur la cellule.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim text, ntext As String
Dim l, nl As Integer
text = ActiveCell
l = Len(text)
ntext = InputBox("nouveau texte")
nl = Len(ntext)
ActiveCell.FormulaR1C1 = text & Chr(10) & ntext
Selection.Font.Bold = False
With ActiveCell.Characters(Start:=l + 1, Length:=nl + 1).Font
.FontStyle = "Gras"
End With
End Sub
Bonjour
Un exemple
https://www.cjoint.com/?3Ltp1WeStks
Cdlmnt
Option Explicit
' plages à traiter - à modifier selon la configuration
Const plage1 = "A1:A10"
Const plage2 = "C1:C10"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pl As Range, nbvblf As Long, rvblf As Long, s As String
' compléter avec les plages à traiter
Set pl = Union(Range(plage1), Range(plage2))
If Not Intersect(Target, pl) Is Nothing Then
s = Target.Value
s = StrReverse(s)
rvblf = InStr(1, s, vbLf)
If rvblf = 0 Then
Target.Font.Bold = True
Else
rvblf = Len(s) - rvblf + 1
Target.Characters(Start:=1, Length:=rvblf - 1).Font.Bold = False
Target.Characters(Start:=rvblf + 1, Length:=Len(s) - rvblf).Font.Bold = True
End If
End If
End Sub
Un exemple
https://www.cjoint.com/?3Ltp1WeStks
Cdlmnt