Compter en VBA à partir de la fin.

  • Initiateur de la discussion Initiateur de la discussion Vidralta
  • Date de début Date de début

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 !

V

Vidralta

Guest
Bonsoir tout le monde

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??🙂

Merci d'avance

Vidralta
 
Re : Compter en VBA à partir de la fin.

Vidralta à dit:
Bonsoir tout le monde

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??🙂

Merci d'avance

Vidralta
Salut et bonnes fêtes
Code:
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)
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
784
Retour