Excel outil contrôle calendrier

Résolu
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. 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
    1. 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
      1. 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
        1. Modérateur
          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
          1. Modérateur
            ç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
            1. 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
              1. 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
                1. Modérateur
                  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
                  1. 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
                    1. Modérateur
                      Bonjour,

                      Essaie plutôt ceci :

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

                      m@rina

                      0
                      1. 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
                        1. Contributeur
                          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
                          1. 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
                            1. Contributeur
                              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
                              1. 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
                                1. Contributeur
                                  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