XL 2013 Caractères spéciaux

coline741

XLDnaute Junior
Bonjour Maîtresses, Maîtres et Autres bienveillants!

Grands connaisseurs des msgbox vba vous pourrez sans doute me dépanner.

Dans le fichier joint, en feuil1, nous avons une petite liste de caractères spéciaux, réalisée pour une partie avec la macro INSER en VBA et Ascii pour l'autre (macro XL4)

Serait-il possible de tout regrouper en VBA au moyen d'une msgbox qui reprendrait le visuel de la macro Ascii et où chaque caractère serait présenté comme suit

par exemple "Ø" suivi d'un bouton à cliquer, et hop!

J'ai joint la macro xl car depuis XL 1.5 je ne sais faire que ça (un gamin m'a dit que c'était obsolète...).

Je patine depuis quelques temps avec le VBA surtout les boîtes

Si vous pouvez,

D'avance merci.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bon allez, fichier (3) avec un module de classe, le code de l'UserForm :
VB:
Dim LB() As New Classe1 'mémorise la variable

Private Sub UserForm_Initialize()
Dim a, i%
a = Array(ChrW(&H2642), ChrW(&H2640), ChrW(&H266A), ChrW(&H266B), ChrW(&H263C), ChrW(&H25BA), ChrW(&H25C4), ChrW(&H25BC), _
    ChrW(&H2660), ChrW(&H2663), ChrW(&H2665), ChrW(&H2666), ChrW(&H7E), ChrW(&HD8), ChrW(&H2013), ChrW(&H2026))
For i = 0 To UBound(a)
    Me("Label" & i + 1) = a(i)
    ReDim Preserve LB(i)
    Set LB(i).LB = Me("Label" & i + 1)
Next
End Sub
Et dans le module de classe :
VB:
Public WithEvents LB As MSForms.Label

Private Sub LB_Click()
ActiveCell = LB
End Sub
 

Pièces jointes

  • caractères spéciaux(3).xls
    52 KB · Affichages: 2

coline741

XLDnaute Junior
Puisque vous insistez coline741 voyez ce fichier (2) et le code de l'UserForm :
VB:
Private Sub Label1_Click(): ActiveCell = Label1: End Sub

Private Sub Label2_Click(): ActiveCell = Label2: End Sub

Private Sub Label3_Click(): ActiveCell = Label3: End Sub

Private Sub Label4_Click(): ActiveCell = Label4: End Sub

Private Sub Label5_Click(): ActiveCell = Label5: End Sub

Private Sub Label6_Click(): ActiveCell = Label6: End Sub

Private Sub Label7_Click(): ActiveCell = Label7: End Sub

Private Sub Label8_Click(): ActiveCell = Label8: End Sub

Private Sub Label9_Click(): ActiveCell = Label9: End Sub

Private Sub Label10_Click(): ActiveCell = Label10: End Sub

Private Sub Label11_Click(): ActiveCell = Label11: End Sub

Private Sub Label12_Click(): ActiveCell = Label12: End Sub

Private Sub Label13_Click(): ActiveCell = Label13: End Sub

Private Sub Label14_Click(): ActiveCell = Label14: End Sub

Private Sub Label15_Click(): ActiveCell = Label15: End Sub

Private Sub Label16_Click(): ActiveCell = Label16: End Sub

Private Sub UserForm_Initialize()
Dim a, i%
a = Array(ChrW(&H2642), ChrW(&H2640), ChrW(&H266A), ChrW(&H266B), ChrW(&H263C), ChrW(&H25BA), ChrW(&H25C4), ChrW(&H25BC), _
    ChrW(&H2660), ChrW(&H2663), ChrW(&H2665), ChrW(&H2666), ChrW(&H7E), ChrW(&HD8), ChrW(&H2013), ChrW(&H2026))
For i = 0 To UBound(a)
    Me("Label" & i + 1) = a(i)
Next
End Sub
On pourrait éviter la répétition des 16 macros des Labels avec un module de classe mais bof...
Grand merci à Mister Job ( (de Paris peut-être?)
C'est exactement ce que je recherchais !

Nombre d'autres compagnons n'avaient pas compris mon désir.

Chantre du VBA, Hérault de la programmation , Votre label sera inscrit sur mon panthéon des champions

Je remercie néanmoins

Dranreb, Lone-wolf, pour leur participation​

 

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki