XL 2016 VBA - Comment savoir dans le code d'un UserForm s'il a été ouvert en vbModal ou vbModeless ?

Dudu2

XLDnaute Barbatruc
Bonjour,

La question est dans le titre.

Merci pour toute indication.

Bonne journée.
 
Dernière édition:
Solution
Tu as mis le doigt sur quelque chose d'inattendu !
Si Obj est un Frame TypeOf Obj Is UserForm = True !!!

Je trouve cela très étrange et je ne sais pas si cela fait sens mais je dirais que c'est un bug car le TypeOf Frame existe bel et bien.

Le bon code est donc:
VB:
'-------------------------------------
'Mode d'affichage du UserForm
'
'- Obj est soit un Control du UserForm
'          soit un UserForm
'
'- Return: vbModal (1)
'          vbModeless (0)
'          Erreur (-1)
'-------------------------------------
Function UserFormShowMode(ByVal Obj As Object) As Integer
    On Error Resume Next
    
    'Cherche l'objet au sommet de la hiérarchie
    Do While Err.Number = 0
        Set Obj =...

patricktoulon

XLDnaute Barbatruc
je vois que tu utilise encore un test typeof pour le -1 au cas ou l'object injecté serait n'importe quoi et n'aboutirais pas a un userform
je l'ai zappé dans ma version me semble t il
mais au moins là c'est bien le dernier des éléments tout en haut de la hiérarchie qui passe dans typeof

les deux font la paire 🤣 🤣
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin