Police différente sur deux lignes d'une même cellule

Bonjour le forum,

Je vous recontacte pour un problème tout bête, mais qui me pose problème.

J'ai une cellule où une date est inscrite.

Je souhaiterai ajouter la date du jour dans la cellule (mais à la ligne) en double cliquant sur la cellule, ce que je fais avec cet event:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Value = Target.Value & vbCrLf & Date
Cancel=False
End Sub

Seulement voilà, j'aimerai que la date du jour que j'ajoute dans la cellule soit d'une police différente (à vrai dire j'aimerai qu'elle soit de taille de caractères plus petite que celle que j'ai normalement).

Est-ce que c'est possible? J'ai du mal à voir comment dissocier deux polices dans une même cellule et surtout comment faire pour que cela ajoute ma date directement dans une autre police.

Si quelqu'un a une astuce, ça serait super.

Merci d'avance à vous.

Cordialement,

Xcelpowa

Bonjour,

A tester.

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
    .Value = Target.Value & vbCrLf & Date
    .Characters(Start:=12, Length:=11).Font.Size = 9
End With
Cancel = True
End Sub

Bonjour à tous,

Une version "dynamique" :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim nbCarTarget As Long

    Cancel = True 'empêche de rentrer dans la cellule lors du double-clic

    Application.ScreenUpdating = False 'désactive la mise à jour de l'écran
    nbCarTarget = Len(Target.Value & vbCrLf)
    Target.Value = Target.Value & vbCrLf & Date
    'mise en forme de la date ajoutée
    With Target.Characters(Start:=nbCarTarget + 1, Length:=Len(Date)).Font
        .Name = "Calibri"
        .FontStyle = "Gras italique"
        .Size = 10
        .Color = vbGreen
    End With
End Sub

Salut Xcelpowa, Salut Jean-Eric,

Jean- Eric, avec ton code, la mise en forme se fait de manière aléatoire en fonction de la longueur du texte déjà en place.

Voici une autre proposition :

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Longueur_Target As Integer

Longueur_Target = Len(Target)

Target.Value = Target.Value & vbCrLf & Date

Target.Characters(Longueur_Target + 1, Len(Target)).Font.Size = 8

End Sub

Cordialement

EDIT : Et bonjour Vba-New

58essai.xlsm (14.46 Ko)

Bonjour Yvouille, vba-new et Jean-Eric,

Merci tous les trois pour vos réponses . Elles marchent toutes bien effectivement et sont du même principe, auquel je n'avais pas pensé effectivement (puisque le nombre de caractère d'une date ne change pas). La version "dynamique" de Yvouille et vba-new est parfaite si jamais j'ai autre chose qu'une date.

Dans tous les cas, un grand merci à vous trois, c'est super .

Bien cordialement,

Xcelpowa

Re-bonjour,

@Jean-Eric

Désolé d’avoir mis en doute ton code ; je n’avais pas remarqué la précision de Xcelpowa indiquant que le texte déjà en place était également une date

Cordialement.

Salut Yvouille ça fait un bail!

T'as pas tout à fait tort on va dire puisque, n'ayant pas eu plus de précisions, si on double-clique successivement sur la cellule, le code de Jean-Eric ne marchait plus.

Rechercher des sujets similaires à "police differente deux lignes meme"