Excel outil contrôle calendrier

Résolu
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   -  
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'utilise l'outil contrôle DTPicker dans un userform pour afficher une date et au besoin la modifier, depuis toute à l'heure je tente d'afficher la date du jour automatiquement au lancement de mon userform . . . .et ce sans succé j'ai fai ça:

Private Sub UserForm1_Initialize ()

DTPicker1 = Date

End Sub


J'ai aussi essaye = Today, = Now et toujours aucun effet j'ai meme tenté un MsgBox "test" rien ne se passe je soupsonne donc mon Private Sub UserForm_Initialize() de ne pas fonctionner est-ce bien la commande Initialize qui marche pour le lancement du userform?

Merci
A voir également:

16 réponses

m@rina Messages postés 23866 Date d'inscription   Statut Contributeur Dernière intervention   11 462
 
Bonjour,

J'ai testé avec le DTPicker car je l'ai sur mon poste perso.
Et je ne comprends pas comment tu fais, car il n'y a aucun problème.
Et même qu'il n'y a pas besoin d'initialisation, car (testé avec Now() et sans), ça revient au même : le DTPicker revient toujours à la date du jour si on a bien fermé la UserForm avec Unload.

m@rina
1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

est-ce bien la commande Initialize qui marche pour le lancement du userform?

Comme son nom l'indique elle est lancée lorsque le formulaire est chargé mais si tu quittes le formulaire avec hide et non unload, le prochain affichage n'est pas un chargement mais simplement un affichage de ce qui a été caché sans lancer d'initialisation bien sûr sinon la précédente saisie serait perdue.
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
salut,merci pour ta réponse

mais en faite j'utilise bien unload pour la fermeture de mon userform...donc pas de problème de ce coté là.....je pense plutot que c'est mon code initialize qui pose problème......
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Pour être puriste, ton code DTPicker1 = Date devrait s'écrire DTPicker1.Value = Date, mais cela fonctionne correctement et tu doit plutôt avoir un autre code qui vient te perturber celui-ci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
Bon ça ne marche toujours pas. . .. je te post le code complet de mon userform qui s'appel Creasupp ça te parlera peut etre plus datedepose est le nom de mon DTPicker:

Private Sub annuler_Click()

Unload Creasupp

End Sub

Private Sub datedepose_Initialize()

datedepose = Date

End Sub


Private Sub crea_Click()
Creasupp.Hide

Dim a As Integer
Dim b As Long

b = numof_crea
a = 0
Do
a = a + 1
Loop Until Application.Cells(a, 1) = b

Cells(a, 1).Value = b
Cells(a, 2).Value = datedepose
Cells(a, 3).Value = dateretour
Cells(a, 3).Select

Dim datesuite As Date, depose, x, y
depose = datedepose
jour = Weekday(depose, vbMonday)

If jour = 6 Or jour = 7 Then
MsgBox "Ne pas choisir de samedi ou de dimanche"
Exit Sub
End If

ActiveCell.Offset(0, jour).Value = depose

For x = jour + 1 To 30
datesuite = ActiveCell.Offset(0, x - 1).Value + 1
ActiveCell.Offset(0, x).Value = datesuite
Next x

For y = jour - 1 To 1 Step -1
datesuite = ActiveCell.Offset(0, y + 1).Value - 1
ActiveCell.Offset(0, y).Value = datesuite
Next y

With Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 30))
.Borders.LineStyle = xlContinuous
.Interior.ColorIndex = 15
.NumberFormat = "ddd-dd/mm/yy"
.Font.Bold = True
End With

Unload Creasupp
End Sub



Merci
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Ton initialisation n'est pas correcte.

Ce n'est pas : Private Sub datedepose_Initialize(), mais Private Sub Creasupp_Initialize() qu'il faut utiliser.
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
AAAAAh ok mais alors le Sub je le met dans le code de mon Creasupp ou de ma feuil1 ??? euuh je viens d'essayer dans les 2 et toujours rien. . . .
0
m@rina Messages postés 23866 Date d'inscription   Statut Contributeur Dernière intervention   11 462
 
Bonjour,

Essaie plutôt ceci :

Private Sub Creasupp_Initialize()
datedepose.value = Now()
End Sub

m@rina

0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
Non toujours pas. . .. je l'ai mis dans le code de feuil1 et j'ai aussi essayé dans le code du userform: datedepose et rien ca ne met pas à jour mon DTPicker . . . . .
0
m@rina Messages postés 23866 Date d'inscription   Statut Contributeur Dernière intervention   11 462
 
C'est dans le code du UserForm qu'il faut le mettre.
Moi, c'est ce que j'utilise avec le contrôle Calendrier. Le DTPicker, je ne l'ai pas, aussi je ne peux pas tester.

m@rina
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
et moi je n'ai pas el contrôle calendrier pourtant j'ai la référence pour contrôle calendier c'est MSCAL.OCX si je me trompe pas, je n 'ai que le controle Microsoft date and time picker controle 6.0, son fichier système est: MSCOMCT2.OCX dans win32, pour controle calendar je crois que c'est MSCAL.OCX ce qui est bizarre c'est que je l'ai dans win32 que je l'ai cochée dans référennce mais il n'apparait pas dans controle suppl"mentaire. . .. . .
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
roooo faut que je trouve une solution car il faut qu'on revienne sur ta macro (m@rina) de ce matin que j'ai pas complétement comprise mais j'ai reussi à la modifier mais j'ai encore quelque truc à apporter mais je voudrai faire marcher ce truc grrrr
0
m@rina Messages postés 23866 Date d'inscription   Statut Contributeur Dernière intervention   11 462
 
ça t'ennuierait de me passer le fichier ou juste un extrait ?

ça me permettrait déjà de voir si je récupère le contrôle DTPicker, et dans ce cas, je pourrais tester.
Si tu préfères, tu mets le lien en MP.

m@rina
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
Salut,

Désolé j'ai eu un weekend chargé et je n'ai pas eu le temps de t'envoyer le fichier, et là je viens d'y remettre le nez et lol j'ai un bug bizarre vendredi ca marchai bien et là ca me fai un truc bizarre je t'envérrai le fichier ce soir avec cijoint . . .
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
bon autant pour moi le bug vient en faite de la modif que j'ai faite suite à ton dernier message, j'ai donc mit après mon sub creation_clic unload creasupp(userform) et là ben il me met comme date 00/01/1900 donc il doit vraiment y avoir un souci . . ..
voilà mon code complet donc j'ai 2 boutons un nommé crea l'autre annuler, datedepose et dateretour sont des DTPicker :

Private Sub annuler_Click()

Unload Creasupp

End Sub
Private Sub crea_Click()
Unload Creasupp

Dim a As Integer
Dim b As Long

b = numof_crea
a = 0
Do
a = a + 1
Loop Until Application.Cells(a, 1) = b

Cells(a, 1).Value = b
Cells(a, 2).Value = datedepose
Cells(a, 3).Value = dateretour
Cells(a, 3).Select

Dim datesuite As Date, depose, x, y
depose = datedepose
jour = Weekday(depose, vbMonday)

If jour = 6 Or jour = 7 Then
MsgBox "Ne pas choisir de samedi ou de dimanche"
Exit Sub
End If

ActiveCell.Offset(0, jour).Value = depose

For x = jour + 1 To 30
datesuite = ActiveCell.Offset(0, x - 1).Value + 1
ActiveCell.Offset(0, x).Value = datesuite
Next x

For y = jour - 1 To 1 Step -1
datesuite = ActiveCell.Offset(0, y + 1).Value - 1
ActiveCell.Offset(0, y).Value = datesuite
Next y

With Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 30))
.Borders.LineStyle = xlContinuous
.Interior.ColorIndex = 15
.NumberFormat = "ddd-dd/mm/yy"
.Font.Bold = True
End With

Unload Creasupp
End Sub


donc tel qu'il est là le code genere le bug cité plus haut, si je remplace unload Creasupp par Creasupp.hide les dates données par DTPicker sont bonne mais toujours pas à jour .. . ..
0
informatifien Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   92
 
Voilà problème résolu grace à m@rina donc merci à elle et voici la solution:

Private Sub UserForm_Initialize()
datedepose = Now()

End Sub


Le problème venait du nom de mon sub,ayant nomé mon userform creasupp j'avai mis la synthaxe creasupp_initialize alors qu'il faut dans ce cas mettre userform . ..

Voilà merci m@rina
0