'--------------------------
'Test si UserForm est actif
'--------------------------
Public Function IsUserFormLoaded(UserFormName As String) As...
Bonjour !Bonjour Dudu2, A-jelil,
@A-Jelil : Ton post avait disparu le temps de répondre. Je t'ai envoyé un code en message privé d'après ce que j'ai compris.
Bonne journée à vous.
Boujour,Bonjour !
Mes excuses pour le retard considérable de ma réaction. Quant au code envoyé, je ne l'ai pas reçu.
Cordialement
Option Explicit
Option Compare Text
Public NomUsf
Sub essai_userform()
If NomUsf = "userform1" Then
'???? faire ce qu'on veut
MsgBox "userform1 actif"
ElseIf NomUsf = "userform2" Then
'???? faire ce qu'on veut
MsgBox "userform2 actif"
End If
End Sub
Option Explicit
Private Sub CommandButton1_Click()
NomUsf = ActiveControl.Parent.Name
Call essai_userform
End Sub
Heu...! pas du tout clair. Surtout sans fichier.Merci pour la proactivité.
Je travaille sur un Userform Calendrier. Au click sur la date, je souhaite qu'un Textbox1 soit renseigné sur le userform actif (userform1 ou userform2, etc...). Voilà mon problème. J'espère avoir été clair.
Cordialement
Pour lancer le UserFormCalendrier il faut bien le faire de quelque part.Je travaille sur un Userform Calendrier. Au click sur la date, je souhaite qu'un Textbox1 soit renseigné sur le userform actif (userform1 ou userform2, etc...).
Public DateCalendrier as date
DateCalendrier = <date choisie dans le calendier>
Unload Me
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserFormCalendrier.Show
Me.TextBox1.Value = DateCalendrier
End Sub
Merci pour votre généreuse disponibilité.Pour lancer le UserFormCalendrier il faut bien le faire de quelque part.
Si c'est pour valoriser le UserForm1.TextBox1.Value ou le UserForm2.TextBox1.Value c'est qu'on part de ces Controls (double-clic ou clic) pour afficher le UserFormCalendrier et donc on sait donc quoi valoriser.
A moins que le UserForm Calendrier soit "suspendu dans l'air" en permanence ce qui est une approche plutôt étrange et exige que UserForm1, UserForm2 et UserFormCalendrier soient lancés en vbModeless pour pouvoir basculer de l'un vers l'autre. D'un point de vue ergonomique c'est aussi un peu le chaos.
Dans le 1er cas, ce n'est pas le code du UserFormCalendrier qui valorise directement le UserForm1.TextBox1.Value ou le UserForm2.TextBox1.Value .
Il faut passer par une variable globale dans un Module:
Dans le UserFormCalendrier:VB:Public DateCalendrier as date
Dans le UserForm1 ou UserForm2:Code:DateCalendrier = <date choisie dans le calendier> Unload Me
Code:Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) UserFormCalendrier.Show Me.TextBox1.Value = DateCalendrier End Sub