XL 2016 Besoin d'aide sur la declaration avec Enum

Don pépé

XLDnaute Occasionnel
Bonjour,
Je suis entrain de me faire un petit MsgBox mais j'ai un problème avec enum j'ai compris son fonctionnement sauf pour récupérer les données surtout pour les couleurs.
quand je passe le nom de ma couleur dans la variable impossible de la récupérer par la suite.

pour mon "MsgBox" je fait comme ceci:
VB:
Msg "textbox vide", "Erreur !!", vcenter, vBold, vbred

pour la function:
VB:
Public Enum TextAlign
    vLeft
    vcenter
    vRight
End Enum
Public Enum StyleFont
    vNormal
    vBold
    vItalic
    vBoldItalic
End Enum
Public Enum Forecolor
    vbBlack
    vbBlue
    vbGreen
    vbRed
    vbWhite
End Enum
Public Function Msg(ByVal Message As String, Optional ByVal Titre As String, _
                    Optional ByVal Align As TextAlign = vLeft, _
                    Optional ByVal FontStyle As StyleFont = vNormal, _
                    Optional ByVal ColorT As Forecolor = vbBlack)
    With UserForm1
        'Label1
        .Label1.BackColor = &HFFFFFF
        .Label1.TextAlign = IIf(Align < 0, 1, IIf(Align > 2, 1, Align + 1))
        .Label1.Font.Bold = FontStyle Mod 2 <> 0
        .Label1.Font.Italic = FontStyle > 1
        .Label1.Forecolor = ColorT
        .Label1.Caption = Message
        
        'UserForm
        .BackColor = &HFFFFFF 'Blanc
        .Caption = Titre
        .Show
    End With
End Function


mais la je comprend pas comment faire merci pour votre aide ;)
 
Solution
bonjour,
pour le formulaire!
VB:
Public Function Msg(ByVal Message As String, Optional ByVal Titre As String, _
                    Optional ByVal Align As TextAlign = vLeft, _
                    Optional ByVal FontStyle As StyleFont = vNormal, _
                    Optional ByVal ColorT As Forecolor = vbBlack, Optional ByValBackColorT As Forecolor = vbWhite)
    With UserForm1
        'Label1
        .Label1.TextAlign = Align
        .Label1.Font.Bold = FontStyle And 1
        .Label1.Font.Italic = FontStyle And 2
        .Label1.Forecolor = ColorT
        .Label1.Caption = Message
        Label1.BackColor = ByValBackColorT
        'UserForm
        .BackColor = ByValBackColorT 'Blanc
        .Caption = Titre
        .Show vbModal...

dysorthographie

XLDnaute Accro
bonjour,
pour le formulaire!
VB:
Public Function Msg(ByVal Message As String, Optional ByVal Titre As String, _
                    Optional ByVal Align As TextAlign = vLeft, _
                    Optional ByVal FontStyle As StyleFont = vNormal, _
                    Optional ByVal ColorT As Forecolor = vbBlack, Optional ByValBackColorT As Forecolor = vbWhite)
    With UserForm1
        'Label1
        .Label1.TextAlign = Align
        .Label1.Font.Bold = FontStyle And 1
        .Label1.Font.Italic = FontStyle And 2
        .Label1.Forecolor = ColorT
        .Label1.Caption = Message
        Label1.BackColor = ByValBackColorT
        'UserForm
        .BackColor = ByValBackColorT 'Blanc
        .Caption = Titre
        .Show vbModal
    End With
End Function
pour l'énumérateur dans un module standard!
Code:
Public Enum TextAlign
    vLeft = 1
    vcenter = 2
    vRight = 3
End Enum
Public Enum StyleFont
    vNormal
    vBold
    vItalic
    vBoldItalic
End Enum
Public Enum Forecolor
    vbBlack = &H80000012
    vbBlue = &H800000
    vbGreen = &H8000&
    vbRed = &H80&
    vbWhite = &HFFFFFF
End Enum
Sub Test()

UserForm1.Msg "toto"
UserForm1.Msg "toto", Titre:="toto"
UserForm1.Msg "toto", Titre:="toto", ColorT:=vbRed
UserForm1.Msg "toto", "toto", vcenter, vBoldItalic, vbRed, vbGreen
End Sub
 
Dernière édition:

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch