Histoire de calendrier

rastafouette

XLDnaute Junior
Bonjour à tous,

Voilà, ma question sera rapide : Dans le fichier joint, j'ai une usf avec 3 texbox et une usf avec un calendrier. On "TextBox_DblClick" dans une des textbox et l'usf calendrier s'ouvre. On "Calendar_DblClick" et on ecupere la date dan le textbox.
Je voudrais récuperer une date (différnete) dans chacune des textbox, avec une seule usf calendrier annexe.

Bref comment renvoyer la date dans la bonne textbox.
(mon essai en pj renvoie dnas le textbox1, mais ocmment pour les autres)
(j'ai un 20aine de textbox à traiter dans mon projet, et je voudrais accessoirement que les textbox soient modifiables uniquement de cette manière là, le "enabled" sauf pour le DblClick en fait, c'ets possible ça?? )

Merci !!
 

Pièces jointes

  • Classeur1.xls
    39 KB · Affichages: 70
  • Classeur1.xls
    39 KB · Affichages: 69
  • Classeur1.xls
    39 KB · Affichages: 70

rastafouette

XLDnaute Junior
Re : Histoire de calendrier

Re

J'utilise donc la soluce de Bernard un peu adaptée
(carcharodon, la tienne fonctionne sur mon fichier exemple mais pas sur le gros, je comprends pas pourquoi)

J'ai donc sur mon usf principal
Code:
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    NomTextBox = TextBox1.Name
    Form_Calendar.Show
End Sub
Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    NomTextBox = TextBox2.Name
    Form_Calendar.Show
End Sub
et sur mon usf calendar
Code:
Private Sub Calendar_DblClick()    
    For i = 1 To 18
        Form_Theorique.Controls(NomTextBox).Value = Calendar.Value
        Form_Theorique.Controls(TextBox & i + 1).SetFocus
    Next i
    Unload Form_Calendar
End Sub

Ca fonctionne bien.
Ma question à 10cts est donc : comme j'ai 20 texbox dans mon usf principale, est-il possible de simplifier le code au lieu de faire 20 evenements textbox_dblclick; bref faire genre une boucle ??

Mais sur les evenements ça se fait les boucles ?
 
G

Guest

Guest
Re : Histoire de calendrier

Re,

Pour se passer de la variable NomTextBox

code de form_Calendar:

Code:
Private Sub Calendar_Click()
    If Form_Depart.ActiveControl.Name Like "TextBox*" Then
        Form_Depart.ActiveControl.Text = Calendar.Value
    End If
    Unload Form_Calendar
End Sub

Code du module de classe:

Code:
Option Explicit
Public WithEvents LeTextBox As MSForms.TextBox
Private Sub LeTextBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Form_Calendar.Show
End Sub

A+
 

rastafouette

XLDnaute Junior
Re : Histoire de calendrier

Bonjour à tous

Merci Hasco, ça fonctionne avec ton module de classe mais (il y a un mais... :( )
Déjà, pour les textbox en dehors du frame c'est tout bon.
Mais pour mes textbox qui sont dans une frame, ça ne marche pas. Le "Activecontrol.Name" dans Calendar_click est le nom de ma Frame (jai vérifié avec un msgbox), même si je selectionne ma textbox avant (en y cliquant proprement avec la souris et en selectionnant en bleu). donc ça ne me change pas la date...
Une idée ?
 
G

Guest

Guest
Re : Histoire de calendrier

Bonjour Rastafouette, le forum,

Alors voici une solution encore plus simple.
Déclaration dans le module du userform d'une variable objet publique 'TextBoxDest'. Et sont initialisation dans le module de classe.

A+
 

rastafouette

XLDnaute Junior
Re : Histoire de calendrier

Bonjour Hasco, le forum,

Merci Hasco de ta réponse (désolée de ma réponse tardive, j'ai été indispo qques temps).
J'ai encore des questions :
- déjà, depuis auj, après avoir dbl-cliqué sur mon calendrier, le Form_calendar disparait(normal), mais ma souris reste en sablier (tout en restant active quand même), une idée du pourquoi ?

- voilà, les Value (toujours des dates) de mes 18 Textbox originales sont toutes étroitement liées. Par ex : je modifie la 1 et les Textbox 3 à 10 sont modifiées(par calcul), je modifie la 2 et les TextBox 11 à 18 sont modifiées(par calcul aussi), je modifie une des Textbox (3 à18) et là, ce sont des label.caption qui sont recalculés (avec les Value des Textbox).
Donc, pour effectuer ces calculs, j'avais mis mes formules dans les événements Textbox_change. Mais ces événements fonctionnent donc à chaque changement de valeur de mes textbox, même à l'initialisation.
Et c'est là que ça bloque.
Quand j'initalise textbox1, le pas-à-pas va ensuite directement au Textbox1_Change qui lui même a besoin de la Value de Textbox2 pour fonctionner, Textbox2 qui, lui, n'a pas encore été initialisée à ce moment là...
Bref, ça bugg, eet c'est là que je cale aussi...
J'ai aussi essayé en mettant les événements Texbox_Exit, mais ça ne me modifie pas en "direct" les valeurs des autres textbox et des labels, ce que je voudrais, pour ne pas induire l'utilisateur en erreur avec des visus de données erronnées...
J'espère avoir été claire et que qqun aura une soluce pour ça.

Merci de m'avoir lue.
 

Discussions similaires

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 930
dernier inscrit
Jibo