Passer le nom du controle d'origine

  • Initiateur de la discussion Initiateur de la discussion Aour
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Aour

Guest
Bonjour le forum,

Désolé pour le titre mais j'ai pas trouvé une phrase courte pouvant expliquer le probleme que voici :

Dans mon userform_principal, j'ai 3 textbox date différents date1, date2, Date3.

J'ai créer un userform_calendar pour pouvoir saisir plus facilement les dates. j'aimerai utiliser ce userform pour les 3 textbox date.

Exemple que j'ai créer pour date1

Appel du calendrier :
Private Sub TxtBox_date1_Enter()
userform_calendar.Show
End Sub

Envoi de la date:
Private Sub Calendar_Click()
userform_principal.TxtBox_date1.Value = Format(Calendar.Value, "DD MMMM YYYY")
Unload Me
End Sub

Mais comment faire pour que cela soit valable pour les 3 dates?
Comment passer le nom du userform et du control en argument de l'appel de userform_calendar (si c'est la bonne piste)?

Merci d'avance

Aour
 
Salut Aour

Soit UserForm1 ton Control Calendar

Private Sub Calendar1_Click()
UserForm2.ActiveControl = Format(UserForm1.Calendar1.Value, "DD MMMM YYYY")
Unload UserForm1
End Sub

Et UserForm2 tes Textbox's

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
UserForm1.Show
End Sub

Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
UserForm1.Show
End Sub

Private Sub TextBox3_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
UserForm1.Show
End Sub

A voir si cela pourrait t'aider

Mytå
 
Salut Myta et le forum,

Merci pour ce code mais j'ai une erreur 438 ( Cet objet ne gère pas cette propriété ou méthode ) sur la ligne :

UserForm2.ActiveControl = Format(UserForm1.Calendar1.Value, "DD MMMM YYYY")

merci

Aour
 
Re,

Ton exemple marche
Seul pb, le si je renviens sur le textbox1 pour changer la date ce dernier ou si je lui est pas mis de date en premier, l'activate.control n'est jamais le textbox1 mais le dernier textbox visité 2 ou 3

J'ai un souci chez moi, c'est que j'utlise une boite à onglet et que l'activatecontrol est toujours l'onglet et non la textbox

Merci encore pour la méthode, je note

Aour
 
Bonsoir Aour, Mytå, le Forum

Une Piste sur une ancienne démo :

=> La Démo Téléchargeable Lien supprimé (12k)

=> Le Fil de Discussion Lien supprimé

Par contre il faudra déclarer en Public dans un Module Standard la Variable ActiveTextBox...


Bonne Soirée
@+Thierry
 
re-bonsoir à tous,

Merci thierry je vais étudier tout cela

Pour le moment, je transfert le résultat de la selection du calendrier dans un textbox invisible et j'ai le code suivant dans les textbox date :

Private Sub TxtBox_Date1_Enter()
calendrier.Show
TxtBox_date1 = TxtBox_invisible
End Sub

C'est peux etre pas propre mais efficace et simple.
Mais promis je teste la démo.

Encore merci à vous 2

Aour
 
Re Myta et le forum

Je viens de télécharger ton fichier et effectivement, tout marche nickel.

Je vais voir ce qui cloche chez moi, mais en tout cas merci à toi et à Thierry pour ces solutions ;-)

cordialement,

Aour
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
332
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
503
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
371
Réponses
5
Affichages
522
Retour