XL 2016 Ouvrir un userform avec une macro

dodineau

XLDnaute Occasionnel
bonjour.
J'ai un user form dans un classeur et je voudrais l'ouvrir à partir d'une macro d'un autre classeur.
Je précise que le classeur contenant le userform est également ouvert en même temps.
Est-ce possible et si oui par que commande macro.
Merci pour votre Aude.
À+
 

Dranreb

XLDnaute Barbatruc
NomProj.NomUserForm.Show
Il est vrai que je n'ai jamais fait l'essai.
Si ça ne marche pas, écrivez dans le projet qui le contient une petite procédure Public qui l'affiche, et appelez cette procédure dans l'autre.
 

Dranreb

XLDnaute Barbatruc
En effet, l'UserForm n'est pas connu de l'autre projet.
Mais en appelant une de ses Sub qui fait le Show ça marche.
Je vais voir s'il est possible d'obtenir une copie de l'userform.

Ça semble possible mais pas trouvé le moyen d'éviter une liaison tardive.
En tout cas ces deux solution marchent. Dans un module standard d'un projet "Essai" muni d'un UserForm UFm1:
VB:
Option Explicit

Sub Affiche1()
UFm1.Show
End Sub

Function UFm1() As UFm1
Set UFm1 = New UFm1
End Function
Dans un module d'un nouveau classeur avec Essai en référence :
VB:
Option Explicit

Sub Tst1()
Essai.Affiche1
End Sub

Sub Tst2()
Dim OBj As Object
Set OBj = Essai.UFm1
OBj.Show
End Sub
Celle ci aussi, du coup, d'ailleurs, sans liaison tardive pour le Show, si on n'a pas besoin de dialoguer avec UFm1, ce qui n'est pas très souhaitable de toute façon à mon avis. :
VB:
Sub Tst3()
Essai.UFm1.Show
End Sub
 
Dernière édition:

dodineau

XLDnaute Occasionnel
Merci pour cette réponse bien réfléchie.
Ça fonctionne parfaitement pour afficher le usf de l'autre classeur.
Par contre comme cet affichage se fait en 2 temps il m'est impossible d'accéder aux contrôles comme les boutons ou autres. Par exemple certains boutons doivent être cachés à l'ouverture et rendus visibles par la suite.
À+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Personnellement j'aime bien tout programmer dans l'UserForm.
Ça ne me dérangerais même pas que les contrôles y soient Private et non Public.
Je n'hésite pas à le munir de méthodes au besoin pour dialoguer avec, mais j'estime que c'est à lui seul de s'occuper de sa tribu de contrôles.
Mais dans ce cas ça me gênerais de travailler en liaisons tardive avec cet UserForm même via des méthodes dont il serait muni.
Voir à lui dédier peut être plutôt des procédures d'un module standard du classeur de macros, qui, elles, interagiront avec…
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane