Changer la police d'une partie d'un texte

Venitien

XLDnaute Occasionnel
Bonjour à tous,

Le sujet à peut-être été abordé ailleurs mais je n'ai rien trouvé...

Je vous donne une exemple:

A1 contient un chiffre, 3 par exemple.

A2 contient la formule: [="Il y a "&A1&" poules sur le mur."]

Je veux que A3 contienne la phrase "Il y a 3 poules sur le mur." mais je veux que le chiffre 3 soit d'une police différente, et soit mis à jour si je change A1.

Des idées sur la marche à suivre??

Merci

(exemple ci-joint)
 

Pièces jointes

  • poules.xlsx
    10 KB · Affichages: 49

pierrejean

XLDnaute Barbatruc
Re : Changer la police d'une partie d'un texte

Bonjour Venitien

Une solution légèrement capillotractée (avec obligation d'avoir la formule dans une cellule )
Néanmoins il est possible de modifier aussi bien le chiffre que la formule
 

Pièces jointes

  • poules.xlsm
    17.1 KB · Affichages: 82

Venitien

XLDnaute Occasionnel
Re : Changer la police d'une partie d'un texte

Rebonjour,

En fait ça ne va pas malheureusement... j'ai besoin de faire mon dossier sans macros...

Mon réel besoin et (en reprenant l'exemple du fichier posté plus haut):

-J'ai un chiffre qui peut être mis à jour (3 dans mon exemple).

-J'ai une formule qui concatène ce chiffre avec des mots pour placer le chiffre dans une phrase.

Mon besoin est de récupérer cette phrase dans une autre cellule, de manière à pouvoir colorier manuellement certains mots.


Ma réflexion: La longueur de la phrase, la position des mots, et les mots eux mêmes à colorier peuvent varier. Il faudrait donc sans macro, copier la phrase de la deuxième cellule (mais pas la formule), et la renvoyer dans la troisième.

une idée??


Merci
 

JBOBO

XLDnaute Accro
Re : Changer la police d'une partie d'un texte

Bonjour,

A mon avis c'est impossible sans macro. Une solution très "Bidouille", pourrait consister à creer une zone de texte lié à la cellule A1, lui appliquer le format désiré, et superposé cette zone de texte sur la cellule contenant le texte complet .
L'inconvénient majeur étant que si le texte change, il faudra décaler la zone de texte, et si il y a beaucoup de ligne avec cette formule, il faudra créer autant de zone de texte que necessaire, et affecter les cellules liées, une à une.
 

Pièces jointes

  • venitien.xls
    38 KB · Affichages: 43

pierrejean

XLDnaute Barbatruc
Re : Changer la police d'une partie d'un texte

Salut Gerard

Hello Pierre,

Faire à chaque changement le Copier-Collage spécial-Valeur à partir de cette cellule.

A+

C'est bien la le problème .Dans la version Vba lorsqu'on modifie le chiffre (voire la formule ) la cellule cible suit
D'ailleurs ,après Copier-Collage il faudra encore, je pense ,refaire la manip pour le changement de la taille de la police et de la couleur
 

job75

XLDnaute Barbatruc
Re : Changer la police d'une partie d'un texte

Hello Pierre,

Eh oui VBA permet d'éviter les taches répétitives :rolleyes:

Maintenant sans VBA, au lieu d'utiliser 1 cellule de restitution, en utiliser 3.

C'est une solution évidente, voir le fichier joint.

A+
 

Pièces jointes

  • poules(1).xlsx
    10.3 KB · Affichages: 52

Venitien

XLDnaute Occasionnel
Re : Changer la police d'une partie d'un texte

Bonjour à tous,

Merci pour vos réponses.

Je vous donne plus de détail. Je suis en train de mettre au point un fichier excel dans lequel:

- je compile des résultats d'enquêtes
- ces résultats alimentent des TCD ou des calculs
- Ces calculs sont repris sur une page du classeur qui sera ensuite mise en forme puis imprimer pour faire un rapport

L'objectif étant que cette page qui sert de rapport, voit ses données mise à jour en fonction des enquêtes qui arrivent au fur et à mesure (je ne peux pas attendre l'arrivée de tous les résultats je quitte mon poste dans 2 semaines). De plus, la même enquête sera conduite l'année prochaine et il faut que mon employeur n'ai plus qu'à réactualiser les résultats d'enquêtes pour que le rapport 2015 soit construit automatiquement.

Bref, je ne voulais pas avoir recours à une macro parce-que c'est plus compliqué à utiliser pour les non initiés (il faut activer les macro, excel affiche un message qui fait peur...). Cependant, devant l'impossibilité de s'en passer pour ce type de problème, j'ai fait preuve d'un peu de pédagogie et j'ai fais passé ma macro.

Conclusion: la pédagogie est un puissant add-on pour excel :D

Je vous remercie pour vos contributions.

Bonne journée.
 

job75

XLDnaute Barbatruc
Re : Changer la police d'une partie d'un texte

Re,

Pendant que j'y suis, une autre solution VBA, dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c1 As Range, c2 As Range, c3 As Range
Set c1 = [A1]: Set c2 = [A2]: Set c3 = [A3]
If Intersect(Target, Union(c1, c2)) Is Nothing Then Exit Sub
c3 = c2
If c1 = "" Then Exit Sub
With c3.Characters(InStr(c3, c1), Len(c1)).Font
  .ColorIndex = 3 'rouge
  .Bold = True 'gras
  .Size = 20
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

  • poules VBA(1).xlsm
    18.7 KB · Affichages: 51

job75

XLDnaute Barbatruc
Re : Changer la police d'une partie d'un texte

Re,

Pour le cas où il n'y a pas de texte devant le nombre, il faut prévoir une réinitialisation (RAZ) de la police :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c1 As Range, c2 As Range, c3 As Range
Set c1 = [A1]: Set c2 = [A2]: Set c3 = [A3]
If Intersect(Target, Union(c1, c2)) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
With c3.Font 'RAZ
  .ColorIndex = xlAutomatic
  .Bold = False
  .Size = 11
End With
c3 = c2
If c1 = "" Then Exit Sub
With c3.Characters(InStr(c3, c1), Len(c1)).Font
  .ColorIndex = 3 'rouge
  .Bold = True 'gras
  .Size = 20
End With
End Sub
Fichier (2).

Edit : ajouté Application.ScreenUpdating = False

A+
 

Pièces jointes

  • poules VBA(2).xlsm
    19.3 KB · Affichages: 50
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 693
dernier inscrit
vincs