Excel outil contrôle calendrier

Résolu
informatifien Messages postés 781 Statut Membre -  
informatifien Messages postés 781 Statut Membre -
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

--
L'informatique est à la société ce que la femme est au monde. . . c'est compliqué mais on ne peut s'en passer ;)
Configuration: asus P5V800 / P4 2,8 Ghz / 1,5 Go Windows XP FireFox / IE 7

16 réponses

  1. m@rina Messages postés 27628 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  3. informatifien Messages postés 781 Statut Membre 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
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. informatifien Messages postés 781 Statut Membre 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
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  8. informatifien Messages postés 781 Statut Membre 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
  9. m@rina Messages postés 27628 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    Bonjour,

    Essaie plutôt ceci :

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

    m@rina

    0
  10. informatifien Messages postés 781 Statut Membre 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
  11. m@rina Messages postés 27628 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    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
  12. informatifien Messages postés 781 Statut Membre 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
  13. informatifien Messages postés 781 Statut Membre 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
  14. m@rina Messages postés 27628 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    ç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
  15. informatifien Messages postés 781 Statut Membre 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
  16. informatifien Messages postés 781 Statut Membre 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
  17. informatifien Messages postés 781 Statut Membre 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