Changement de la propriété ShowModal

Bonjour,

J'aurais une question pour un changement,

J'ai ce bout de code qui permet de modifier la propriété de ShowModal en Vba.

    ThisWorkbook.VBProject.VBComponents("UserForm1"). _
        Properties("ShowModal").Value = 0

Le problème est que ça passe la première fois, puis des que je relance une deuxième fois ça plante.

Vous avez une idée?

9

hj

Bonjour

Essaie de mettre la propriété "ShowModal" de l'UserForm1 à "False" et abandonne ce code. Tu ne devrais plus avoir d'ennui.

Bye !

Bonjour,

Merci pour la réponse, j'ai déjà procédé comme tu me l'as dit, mais ça me fais la même chose

cdlt


Se qui est bizarre dès que je vais dans le vba, ouvre mon usf et relance le code du module avec le bouton ça passe, alors la j'ai rien compris

Sans ton fichier, je ne puis t'en dire plus.

Ce qui ne veut pas dire qu'avec, je trouverais l'explication....

Bye !

Pourtant je l'avais mis, j'ai du oublier de cliquer sur un bouton.

Le voici

112modal-non-modal.xlsm (20.97 Ko)

Bonjour,

Sub CompteUserForm()
    Dim usf$
    With Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_MSForm)
        .Properties("ShowModal") = False
        usf = .Name
    End With
    VBA.UserForms.Add(usf).Show
End Sub

Ceci dit, la définition de ShowModal à la conception n'est pas vraiment utile, elle est True par défaut, mais tu peux l'ouvrir en modal ou non.

Note que le Userform créé s'ouvre, mais qu'il est vide pour l'instant, tu n'y a rien mis.

Cordialement.

Merci pour le code, j'ai testé rapidement, et ça à l'air de fonctionner

Bonjour

Merci de ton implication

Désolé ma réponse a été trop rapide, ce n'est pas exactement ce que je voulais

Tu crées un autre Userform et cela n'est pas ce que je veux

Je veux que dans ma collection d'Userform on puisse changer la propriété ShowModal de chaque Userform (à la place de Userform je vais marquer Usf - plus rapide - Cela va protéger mon clavier )

Le problème

Si l'Usf est en mode modal (True) et que je lance le programme pour le passer en Non Modal (False), l'ouverture de l'Usf se passe bien, j'ai bien accès à la feuille malgré l'Usf ouvert

Je ferme l'Usf

Je modifie la macro pour que la prochaine fois l'Usf s'ouvre en Modal (True) et lors de l'exécution de la procédure ---> badaboum

Je suis obligé d'afficher l'Usf dans l'éditeur et ensuite relancer la macro pour que celle-ci fonctionne bien

Je récapitule

On place la propriété de l'Usf = True

Usf Modal (True) ---> (macro)False ---> Ok

Fermeture de l'Usf (Celui-ci est en mode Non Modal - False-)

Usf Modal (False) ---> (macro)True ---> Pas Ok --> Affichage Usf dans VBE---> Ok

Je voudrais que cela fonctionne sans passer par la phase Affichage Usf dans VBE

Je redonne la macro que j'utilise

Sub CompteUserForm()
    ThisWorkbook.VBProject.VBComponents("UserForm1").Properties("ShowModal").Value = 1 ' 1 = Modal, 0 = Non Modal
     VBA.UserForms.Add("UserForm1").Show
End Sub

Je ne sais pas ce que tu veux faire.

Ton code était destiné à produire un Userform, pas à en utiliser un existant.

Je me suis intéressé à cet aspect, pour faire en sorte de pouvoir ouvrir l'Userform après création.

Je t'ai signalé au passage que par défaut un Userform était modal et que pour l'ouvrir en non modal il te suffisait de le préciser à l'ouverture : Userform1.Show False, au lieu de te livrer à cette acrobatie.

Ma participation s'arrête là.

Tu as tout loisir de coder l'ouverture de tous tes Userform en modal ou non modal selon tes souhaits... Pas de problème donc !

Rechercher des sujets similaires à "changement propriete showmodal"