Mettre en gras un bout de la formule

Bonjour,

J'ai un bout de code comme celui-ci :

="Nous vous avons envoyé un premier rappel en date du "&SI(JOUR(AB23)<10;"0";"")&JOUR(AB23)&"."&SI(MOIS(AB23)<10;"0";"")&MOIS(AB23)&"."&ANNEE(AB23)&" et constatons que celui-ci présente"

Or je souhaiterai que la partie :"&SI(JOUR(AB23)<10;"0";"")&JOUR(AB23)&"."&SI(MOIS(AB23)<10;"0";"")&MOIS(AB23)&"."&ANNEE(AB23)&" soit en gras. Est-ce possible ?

Bonjour,

Je propose une formule allégée :

="Nous vous avons envoyé un premier rappel en date du "&TEXTE(AB23;"JJ.MM.AAAA")&" et constatons que celui-ci présente"

Je pense que c'est possible en passant par VBA. Voici un essai avec ce code à placer dans le module de la feuille de AB23 :

private sub worksheet_change(byval target as range)
set r = intersect(target, range("AB23"))
if not r is nothing then
    range("resultat").characters(53, 10).font.bold = true
end if
end sub

A chaque changement de la date en AB23 (ici, il est supposée que cette cellule soit réservée à la saisie), la macro se déclenche et met en gras les 10 caractères à partir du 53è de la cellule "resultat". Il faudra donc remplacer "resultat" par la référence (adresse) de la cellule avec la formule.

J'espère que ça marchera (j'ai un petit doute sur la possibilité d'utiliser characters dans une macro évènementielle...

Cdlt,

Bonjour Lulu1234, 3GB,


Voir fichier et les deux méthodes proposées.

12classlulu1234.xlsx (11.55 Ko)

Salut X Cellus !

Très astucieux, je ne savais pas qu'on pouvait utiliser des formules dans des zones de texte , merci pour ce partage.

J'ai essayé ma proposition mais elle ne fonctionne pas avec un texte résultant d'une formule. Donc, quitte à avoir une macro, autant remplacer la formule :

private sub worksheet_change(byval target as range)
set r = intersect(target, range("AB23"))
if not r is nothing then
    with range("resultat")
        .value = "Nous vous avons envoyé un premier rappel en date du " & format(r.value, "DD.MM.YYYY") & _
        " et constatons que celui-ci présente"
        'possible de remplacer 53 par une variable : start = instr(.value, ".") - 2
        .characters(53, 10).font.bold = true
    end with
end if
end sub

Cdlt,

Oui,

je me doutais que tu aurais relevé ton binz.

Autant faire Toutenmacro parfois.

Rechercher des sujets similaires à "mettre gras bout formule"