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

Réponses
22
Affichages
662

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 613
dernier inscrit
luluinmauritius