Format de texte dans une formule

F

Fabien

Guest
Bonjour


J'ai une formule toute simple de se type

=SI(OU(M1=7;M1=8);"8ème journée";"10ème journée")

Mais je voudrais que "ème" soit écrit en exposant

Y as t-il une solution???

Merci à tous
 
L

léa

Guest
Bonjour Fabien

Essaie cette macro :

Sub exposant()

Range("A2").Select
ActiveCell.FormulaR1C1 = "8 èmejournée"
With ActiveCell.Characters(Start:=3, Length:=3).Font
.Superscript = True
End With
With ActiveCell.Characters(Start:=6, Length:=7).Font
.Superscript = False
End With

End Sub

Tu conserve ta formule qui t'écriras "8 ème journée" (sans exposant), tu lances la macro et tu obtiendras ce que tu veux

PS : j'ai supposé dans mon exemple que la cellule contenant "8 ème journée" était la cellule "A2"
de plus attention à respecter les espaces entre "8" et "ème" et "ème" et "journée"
Bon courage
Léa
 
F

Fabien

Guest
Je te remercie Léa

Mais ca ma l'air d'etre une usine à gaz
De plus si c'est plus 8 mais 10 ca me décale d'un rang
J'aurais voulu trouver une solution qui ne serait pas en VB
Sinon j'obterais pour écrire ma formule entierement en VB

Merci

Mais je trouve qu'en même très bizarre de part d'exel de bloquer sur des choses si symple
Car quand ce n'est pas une formule ca ne pose aucun problème, on peut très facilement écrire en exposant une partie du texte...
 
S

Sylvain

Guest
bonjour,

une idée sans macro mais pas évidente non plus
- écrire 8ème et 9ème dans 2 cellules (c4 et c5 dans mon exemple) l'une au dessus de l'autre
- dans une troisième cellule (ici d4) indiquer la formule suivante : =SI(OU(M1=7;M1=8);0;1)
- dans le menu insertion / nom définir : créer un nouveau nom journée :
=DECALER(Feuil1!$C$4;Feuil1!$D$4;0;1;1)
-insérer une image de la bibliothèque
-cliquez sur l'image, et dans la barre de formule indiquer
=journée
L'image alors change en fonction des valeurs en M1

A+[/sn1]
 

Pièces jointes

  • exposant.zip
    2.9 KB · Affichages: 30
F

Fabien

Guest
Salut

Je pense que je vais opter pour le solution de Léa
Merci quand même sylvain pour t être arrter sur ce problème

Mais pour résoudre il me faudrait une macro qui compte le texte depuis la fin

Car le résultat peut etre par ex "8ème journée" ou "13ème journée"

Les cellules ou doivent s'éxécuter cette macro sont:

F8;F14;F20;F26;F32;F38;F44


Merci
 
L

léa

Guest
rebonsoir Fabien,

un petit pas en avant
essaie ce code, je crois qu'il doit fonctionner pour tous les cas, soit 8 ème journée, soit 18 éme journée, et pourquoi pas 118 ème journée.
Si ça te va on l'adaptera à ta feuille

Private Sub CommandButton1_Click()
ActiveCell.FormulaR1C1 = Range("A1").Value
Mot = ActiveCell.Value
For I = 1 To Len(Mot)
If Mid(Mot, I, 1) <> Chr(32) Then
Else: tranche1 = Left(ActiveCell.Value, I)
GoTo suite
End If
Next I


suite:

With ActiveCell.Characters(Start:=I + 1, Length:=3).Font
.Superscript = True
End With
J = I + 3
With ActiveCell.Characters(Start:=J + 1, Length:=7).Font
.Superscript = False
End With
End Sub

pour le tester tu écris en A1 ton texte : 8 ème journée ou bien 18 ème journée ou encore 118 ème journée, et tu crées un bouton auquel tu colles ce code
A tout à l'heure
Léa
 

Discussions similaires

Statistiques des forums

Discussions
314 200
Messages
2 107 116
Membres
109 754
dernier inscrit
agaderm