Mettre en gras une partie d'une cellule contenant plusieurs formules

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 !

sekophi

XLDnaute Nouveau
Bonjour à tous,

Après avoir passé une bonne heure sur le forum afin de trouver une solution à mon problème en vain,
Je me permet d'ouvrir un nouveau sujet.

en gros voila ma formule :

="Embarqué à "&RECHERCHEV(L3;Tableau!B4😛200;9;FAUX)&" par "&RECHERCHEV(L3;Tableau!B4😛200;10;FAUX)&" le "&TEXTE(RECHERCHEV(L3;Tableau!B4😛200;8;FAUX);"jj mmmm aaaa")&""

Je voudrait obtenir :

Embarqué à Paris par Avion le 01 décembre 2013

J'ai essayer par macro, je n'ai pas trouver de solution ....

Merci d'avance pour votre aide !! 😉
 
Re : Mettre en gras une partie d'une cellule contenant plusieurs formules

Bonjour,

Cf exemple en PJ

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect([A2:A2], Target) Is Nothing And Target.Count = 1 Then
      lib = Application.VLookup(Target, [MaTable], 2, False)
      If Not IsError(lib) Then
        Target.Offset(, 1) = "Libellé:" & lib & " xxx"
        Target.Offset(, 1).Characters(Start:=9, Length:=Len(lib)).Font.ColorIndex = 3
        Target.Offset(, 1).Characters(Start:=9, Length:=Len(lib)).Font.Bold = True
      End If
   End If
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : Mettre en gras une partie d'une cellule contenant plusieurs formules

Bonjour sekophi et bienvenue sur XLD, BOISGONTIER 🙂

Selon moi (mais je me trompe peut-être - mais sans doute pas - mais j'aimerais bien -) votre demande n'est pas réalisable. Si une cellule contient du texte, je sais le faire mais pas si elle contient une formule.

J'ai essayé un palliatif (à adapter à votre cas puisqu'aucun fichier n'a été fourni) en utilisant la colonne B à droite de la colonne A. Chaque fois qu'un des antécédents des formules de la colonne A est modifié, on met à jour la colonne B. On peut masquer la colonne A.

Pour modifier les antécédents des formules de la colonne A, sélectionner les valeurs dans la table D3:F6 (zone en gris). Cette zone regroupe d'ailleurs pour l'exemple joint, les antécédents de la colonne A.

Les code sont dans le module de "Feuil1" et dans le module "module1". Je les ai "un tout petit peu" commenté.

Edit: v2 idem v1 mais avec activation/désactivation des évènements.
 

Pièces jointes

Dernière édition:
Re : Mettre en gras une partie d'une cellule contenant plusieurs formules

Bonjour à tous,

Selon moi (mais je me trompe peut-être - mais sans doute pas - mais j'aimerais bien -) votre demande n'est pas réalisable. Si une cellule contient du texte, je sais le faire mais pas si elle contient une formule.
voici une solution qui fonctionne sur des cellules contenant une formule
......... mais après lancement de la macro, les formules disparaissent et sont remplacées par le texte

il reste à faire un petit peu de ménage dans le code (réalisé avec des copier-coller de bout de codes issus de l'enregistreur)

à+
Philippe
 

Pièces jointes

Re : Mettre en gras une partie d'une cellule contenant plusieurs formules

Une occasion, phlaurent55, pour te saluer 🙂

Effectivement, j'aurais dû préciser "tout en gardant les formules".

Sinon en éclatant la formule, on peut toujours le faire sans macro... (j'en ai presque honte 😱 mais je l'ai déjà fait pour un fichier perso)
 

Pièces jointes

Dernière édition:
Re : Mettre en gras une partie d'une cellule contenant plusieurs formules

Bonjour,

Savez-vous quel serait le moyen de modifier le même texte plusieurs fois dans la même cellule ?

ex avec le fichier en pièce jointe. J'ai commencé la macro, mais il me manque la condition pour arriver à modifier plusieurs fois le même texte ds la même cellule.

Merci pour votre aide
 

Pièces jointes

Re : Mettre en gras une partie d'une cellule contenant plusieurs formules

Bonsoir chop85,

(...) Savez-vous quel serait le moyen de modifier le même texte plusieurs fois dans la même cellule ? (...)

En insérant une boucle Do until ... Loop pour le traitement de chaque cellule de la colonne A:

le code:
VB:
Option Explicit

Sub Mise_en_forme()
Dim i&, j&, g&, DerniereLigne&, debut&

Application.ScreenUpdating = False
DerniereLigne = Cells(10000, 1).End(xlUp).Row
  For g = 1 To DerniereLigne
    debut = 1
    Do Until debut >= Len(Cells(g, 1))
      i = InStr(debut, Cells(g, 1), "{")
      j = InStr(debut, Cells(g, 1), "}")
      If i = 0 Or j = 0 Then Exit Do
      Cells(g, 1).Characters(i + 1, j - i - 1).Font.Bold = True
      Cells(g, 1).Characters(i + 1, j - i - 1).Font.Color = RGB(5, 5, 210)
      debut = j + 1
    Loop
  Next g
Application.ScreenUpdating = True
End Sub

Edit : v2 avec une petite amélioration
 

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