Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

convertir une partie de texte en exposant

4 réponses
Avatar
Roland Miller
Bonjour,

Par exemple il y a le texte "Pour le 1er d=C3=A9cembre."

Je cherche =C3=A0 mettre le er du 1er en exposant.

- J'ai pens=C3=A9 faire saisir par l'usager =E2=80=A6 disons =E2=80=A6 Exp:=
erExp: dans la celule.

Par la suite par un bouton lancer une macro qui modifie Exp:erExp: en er en=
exposant.

=C3=89videmment il manque quelque chose au code suivant. Auriez-vous une su=
ggestion? Merci =C3=A0 l'avance.

Range("A1").Replace what:=3D"Exp:*Exp:", replacement:=3DSuperscript("*")

4 réponses

Avatar
MichD
Le 12/02/20 à 13:50, Roland Miller a écrit :
Bonjour,
Par exemple il y a le texte "Pour le 1er décembre."
Je cherche à mettre le er du 1er en exposant.
- J'ai pensé faire saisir par l'usager … disons … Exp:erExp: dans la celule.
Par la suite par un bouton lancer une macro qui modifie Exp:erExp: en er en exposant.
Évidemment il manque quelque chose au code suivant. Auriez-vous une suggestion? Merci à l'avance.
Range("A1").Replace what:="Exp:*Exp:", replacement:=Superscript("*")

Bonjour,
Essaie comme cela :
'------------------------------
Dim P As Long
With Range("G1") 'En G1, le texte : "Le 1er du mois"
'P = la position de er dans la chaine de caractères
P = Application.Find("er", .Value, 1)
'Mise en exposant à partir de la position p pour 2 caractères
With .Characters(Start:=P, Length:=2).Font
.Superscript = True
End With
End With
'------------------------------
MichD
Avatar
MichD
Le 12/02/20 à 17:08, Roland Miller a écrit :
Merci.
Mais je ne sais à l'avance ce que l'usager voudra en exposant.

Là, je ne comprends pas. Tu veux mettre en exposant un texte, mais tu
n'as aucun repère pour déterminer ce que sera ce texte, sa longueur, etc.
Moi, je ne sais pas dire à une macro quelque chose dont je n'arrive pas
à définir.
MichD
Avatar
MichD
Le 12/02/20 à 20:26, Roland Miller a écrit :
Désolé je vais tenter d'être plus précis.
Disons que le texte est "pour le 1er décembre"
Je veux arriver à mettre ce que l'usager veut mettre en exposant … dans ce cas "er". Mais ça pourrait être ième etc.
Alors … je demanderais à l'usager de taper Exp: avant et après le texte qu'il veut mettre en exposant. Alors dans mon exemple une fois qu'il aura inscrit les Exp: le texte serait pour le 1Exp:erExp: décembre.
Alors … une fois seulement qu'il aura inscrit ceci … il peut lancer la macro.
Car après la ligne .Superscript = True … je pourrai enlever les Exp:.
Alors ce que je veux mettre en exposant … est Exp:erExp: ou juste er … mais que je ne connais pas au départ … soit avant que l'usager aura inscrit les Exp:. Les Exp: serait comme une convention ou??

Au lieu de faire une macro pour cela, pourquoi ne pas dire aux usagers
comment procéder?
A ) Sélection du texte à mettre en exposant dans une cellule
B ) Clic droit sur la cellule, commande "Format de cellule"
C ) Cocher la case à cocher "Exposant".
Si tu tiens à une macro, celle-ci va mettre en "Exposant" le mot suivant
l'expression "exp:". Il pourrait en avoir plusieurs dans la même
cellule. SEUL le mot attaché suivant l'expression "exp:" sera mis en
exposant, comme dans l'expression "exp:toto". Si tu veux mettre
plusieurs mots en exposant dans la même cellule, chacun de ces mots doit
être précédé par "exp:"
'-------------------------------------
Sub test()
Dim D As Long, A As Long, F As Long
With ActiveCell
If .Value <> "" Then
For A = 1 To Len(.Value)
D = InStr(A, .Value, "exp", vbTextCompare)
If D = 0 Then Exit Sub
F = Application.Find(" ", .Value, D)
With .Characters(Start:=D + 4, Length:=F - (D + 4)).Font
.Superscript = True
End With
A = F
D = 0
Next
End If
End With
End Sub
'-------------------------------------
MichD
Avatar
MichD
Un fichier exemple : https://www.cjoint.com/c/JBpqsZBxJFj
MichD