Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Appel d'un UF à partir de plusieurs TextBox

  • Initiateur de la discussion Initiateur de la discussion babap1
  • 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 !

babap1

XLDnaute Occasionnel
Bonjour le Forum,


Je suis confronté au problème suivant :
Mon UF1 comprend plusieurs TextBox et lorsque je clique dans ces TextBox, j'ouvre mon UF2 qui n'est autre qu'un calendrier, j'aimerai que la date s'inscrive dans la bonne TextBox de mon UF1.

Je ne trouve pas comment connaître la TextBox de destination...

Voici l'appel à partir du UF1:
Code:
Private Sub txt_date1_Enter()
    calendrier.calendar.Value = Date
    calendrier.Show
End Sub
Private Sub txt_date2_Enter()
    calendrier.calendar.Value = Date
    calendrier.Show
End Sub
...

Voici le traitement à partir du UF2:
Code:
Private Sub calendar_Click()
    
    UF1.[B][COLOR="Red"]t_date1[/COLOR][/B].Value = Format(calendar, "dd/mm/yyyy")
    Unload calendrier
End Sub

==>> Comment lui dire qu'il faut qu'il prenne en compte la TextBox du UF1 à partir de laquelle il a cliqué pour ouvrir le calendrier ?

Je vous remercie par avance,
Bap
 
Dernière édition:
Re : Appel d'un UF à partir de plusieurs TextBox

Bonjour babap1,

Voici un exemple en PJ.

Pour lancer la démo, tu cliques sur le bouton de la feuille1.

Mais ne serait-ce pas plus simple de positionner ton calendrier sur le userform1, puis de l'afficher ou le masquer avec sa propriété Visible=True ou False ?

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

Re : Appel d'un UF à partir de plusieurs TextBox

Bonjour Papou-net,

ta solution fonctionne très bien dans ton exemple mais j'ai pour ma part un souci car mes TextBox sont dans une Frame et ActiceControl.Name me retourne le nom de la Frame au lieu de celui des TB...

As tu une solution à mon épineux problème ?

Mais ne serait-ce pas plus simple de positionner ton calendrier sur le userform1, puis de l'afficher ou le masquer avec sa propriété Visible=True ou False ?

Je ne suis pas sûr que ce soit vraiment plus simple .. ?

Merci d'avance,
Bap
 
Re : Appel d'un UF à partir de plusieurs TextBox


La solution est de remplacer ActiveControl par le nom du TextBox. Ex :

Code:
Private Sub TextBox1_Enter()
TB = [COLOR="Red"]TextBox1[/COLOR].Name
UserForm2.Show
End Sub

Private Sub TextBox2_Enter()
TB = [COLOR="Red"]TextBox2[/COLOR].Name
UserForm2.Show
End Sub

Private Sub TextBox3_Enter()
TB = [COLOR="Red"]TextBox3[/COLOR].Name
UserForm2.Show
End Sub

Cette solution convient pour ce cas simple. Si le nombre de textbox est important, il serait alors préférable de créer un module de classe, mais je ne maîtrise pas encore ce sujet. Toutefois, si tu lances une recherche sur ce site, tu trouveras des exemples.

Cordialement.
 
Re : Appel d'un UF à partir de plusieurs TextBox

Bonjour le forum, Papou-net,

Bien reçu pour la solution et je vous en remercie. 🙂

Il me reste cependant une épine à propos des calendriers. En PJ, voilà ma ~base de donnée~.

J'utiliste la méthode ***_Enter() pour ouvrir mon UF 'calendrier' lorsque *** correspond à une TextBox pour la saisie d'une date.
=> Cependant, lorsque je clic dans d'autres TextBox qui n'ont pas de méthode _Enter(), le calendrier s'ouvre quand même ... 😕 🙄

Par exemple, cliquer sur une ligne puis sur le bouton modifier. Après cela, cliquez dans "N°APD" puis dans "Commentaires" ..... le Calendrier s'ouvre sans qu'on lui ait rien demandé !! 😱

Merci d'avance pour vos conseils.
Je vous souhaite une Joyeuse Fête de Pâques,

Bap
 

Pièces jointes

Re : Appel d'un UF à partir de plusieurs TextBox

Bonsoir babap1,

Le problème semblait provenir du fait que les textbox étaient placés sur des frames, et à chaque première entrée sur un textbox, c'est le premier situé sur le Frame qui était activé avant celui qui recevait le Focus. C'est une bizarrerie que je n'avais encore jamais rencontrée !

J'ai donc remplacé les Frames par des zones d'image de forme et de couleur identiques, et là ça fonctionne sans problème.

J'en ai profité pour optimiser et raccourcir le code : je te laisse le soin de regarder dans le module gestionnaire et dans le module calendrier. J'ai supprimé la déclaration de la variable publique TextBox, qui n'est plus utile puisque je l'ai remplacée par ActiveControl.

Espérant t'avoir aidé.

Cordialement.
 

Pièces jointes

Re : Appel d'un UF à partir de plusieurs TextBox

Bonjour le Forum, Papou-net,

C'est une bizarrerie que je n'avais encore jamais rencontrée !

Effectivement cela vient des frames... c'est la deuxième fois que j'ai ce problème et si quelqu'un a une réponse, ça serait intéressant.

Espérant t'avoir aidé.

Bien entendu tu m'as aidé et je t'en remercie. Tout fonctionne comme je le voulais, M-E-R-C-I.

Cordialement,
Bap
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…