Ajouter flèches croissant ou décroissant sur un bouton

marcelio

XLDnaute Occasionnel
Bonjour le Forum,

J'ai un bouton qui à 2 fonctions,
un 1er clic qui est croissant et un 2ème clic décroissant.
Est il possible d'ajouter sur le bouton à coté de mon texte pour chaque tri la flèche montante ou descendante.
Mon code :
Dim Sens As Integer

With Me.CommandButton4
If .Caption = "CROISSANT" Then
.Caption = "DECROISSANT"
Sens = xlDescending
Else
.Caption = "CROISSANT"
Sens = xlAscending
End If
End With

Merci d'avance.
 

Paf

XLDnaute Barbatruc
Re : Ajouter flèches croissant ou décroissant sur un bouton

bonjour,
en utilisant Chrw() avec le code d'un caractère unicode.

par exemple
Code:
With CommandButton4
If Left(.Caption, 1) = "C" Then
    .Caption = "DECROISSANT " & ChrW(&H25BC) '*** ou &H2193
    Sens = xlDescending
Else
    .Caption = "CROISSANT " & ChrW(&H25B2) '*** ou &H2191
    Sens = xlAscending
End If
End With
bonne suite
 

marcelio

XLDnaute Occasionnel
Re : Ajouter flèches croissant ou décroissant sur un bouton

Bonjour Paf,

Votre code fonctionne correctement,
mais j'ai un soucis car mes 2 noms sont les mêmes et le code ne fonctionne pas avec le même nom.
Exemple:
Janvier +
et Janvier -
J'espère que vous avez une solution à mon problème.

Et ou peut on trouver les codes d'un caractère unicode.
Merci de votre aide.
A+
 

Paf

XLDnaute Barbatruc
Re : Ajouter flèches croissant ou décroissant sur un bouton

re

la solution est de tester le dernier caractère de Caption.

Code:
With CommandButton1
If Right(.Caption, 1) = ChrW(&H25B2) Then
    .Caption = "Janvier " & ChrW(&H25BC)
    Sens = xlDescending
Else
    .Caption = "Janvier " & ChrW(&H25B2)
    Sens = xlAscending
End If
End With

Quant aux codes des caractères Unicode, une recherche sur le Net...
 

marcelio

XLDnaute Occasionnel
Re : Ajouter flèches croissant ou décroissant sur un bouton

Re,
Merci pour ce nouveau code qui fonctionne correctement.
Mais j'aurais une petite question:
Quand je quitte la feuille et revient ensuite sur celle ci un point d'interrogation est à la place de la flèche mais qui disparais une fois qu'on clic sur le bouton.
Y à t'il une solution pour enlever ce point d’interrogation.
Merci
 

Paf

XLDnaute Barbatruc
Re : Ajouter flèches croissant ou décroissant sur un bouton

Le code suivant CommandButton1.Caption = "Janvier " & ChrW(&H25BC)
est sensé modifier le Caption du bouton, mais quel que soit l'évènement (Sub Worksheet_Activate() ou Sub Workbook_Open() ou Sub Workbook_Activate()), le bouton affiche Janvier ?

je n'ai donc pas de solution pour ce type de bouton

la solution pourrait passer par l'utilisation d'un bouton "formulaire", puisqu'on peut utiliser les caractères spéciaux dans l'écriture de l'équivalent Caption; mais je ne maitrise pas l'utilisation de ce type de bouton en vba

j'essaie
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 997
Membres
103 424
dernier inscrit
Kyuubi