Appel d'un UF à partir de plusieurs TextBox

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:

Papou-net

XLDnaute Barbatruc
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

  • babap1.xls
    32 KB · Affichages: 85
  • babap1.xls
    32 KB · Affichages: 99
  • babap1.xls
    32 KB · Affichages: 97

babap1

XLDnaute Occasionnel
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
 

Papou-net

XLDnaute Barbatruc
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 ?



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

Merci d'avance,
Bap

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.
 

babap1

XLDnaute Occasionnel
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 ... :confused: :rolleyes:

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é !! :eek:

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

Bap
 

Pièces jointes

  • Gestionnaire des APD FH.zip
    43.1 KB · Affichages: 30

Papou-net

XLDnaute Barbatruc
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

  • babap1.zip
    28 KB · Affichages: 33
  • babap1.zip
    28 KB · Affichages: 28
  • babap1.zip
    28 KB · Affichages: 33

babap1

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 917
Membres
104 306
dernier inscrit
Bouhlal