Je viens de découvrir ce forum, et le trouvant fort interessant, je m'y suis inscrit en espérant trouver mon bonheur et peut-etre meme satisfaire celui de quelqu'un d'autre en lui proposant de l'aide !!!
Mon probléme se trouve dans ce code :
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Right(Target.Value, 2) = "m3" Then
With Target.Characters(Start:=2, Length:=1).Font
.Superscript = True
End With
End If
End Sub
Mon but est de transformer de le dernier caractére en exposant :
Ce code donne pour exemple :
Si je tape : m3 le trois se transforme en exposant (logique d'aprés le code!)
Mais lorsque je tape : 15m3 j'aimerai que ce soit le 3 qui se met en exposant et non le 5
Existe t'il un code me permettant de partir de la fin???
Exemple :
PHP:
Start:=(end-1), Length:=1
Ou existe t'il tout simplement une solution plus simple??
Je viens de découvrir ce forum, et le trouvant fort interessant, je m'y suis inscrit en espérant trouver mon bonheur et peut-etre meme satisfaire celui de quelqu'un d'autre en lui proposant de l'aide !!!
Mon probléme se trouve dans ce code :
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Right(Target.Value, 2) = "m3" Then
With Target.Characters(Start:=2, Length:=1).Font
.Superscript = True
End With
End If
End Sub
Mon but est de transformer de le dernier caractére en exposant :
Ce code donne pour exemple :
Si je tape : m3 le trois se transforme en exposant (logique d'aprés le code!)
Mais lorsque je tape : 15m3 j'aimerai que ce soit le 3 qui se met en exposant et non le 5
Existe t'il un code me permettant de partir de la fin???
Exemple :
PHP:
Start:=(end-1), Length:=1
Ou existe t'il tout simplement une solution plus simple??
Private Sub Worksheet_Change(ByVal Target As Range)
If Right(Target.Value, 2) = "m3" Then Target.Characters(Start:=Len(Target), _
Length:=1).Font.Superscript = True
End Sub
J'ai testé, ça marche, mais......................
Si tu sélectionnes plusieurs cellules et que tu les effaces ou que tu fais un coller, tu passes en erreur. la même macro, tenant compte de ce problème :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
For Each Cel In Target
If Right(Cel.Value, 2) = "m3" Then Cel.Characters(Start:=Len(Cel), _
Length:=1).Font.Superscript = True
Next Cel
End Sub
Il semble que le changement de police ne déclenche pas d'événement, donc pas besoin de les inhiber pour éviter un bouclage, mais penses-y quand tu utilises les macros à lancement automatique.
A+
Nota : Avoir trouvé la syntaxe pour mettre en forme un caractère et buter sur un problème aussi simple, c'est toute la magie d'Excel. (et de ceux/celles qui le pratiquent)