Date picker alimenter 5 colonnes

Résolu
Bonjour,

Je suis un peu a cour d'idée, j'ai insérer date picker dans un user form, j'aimerais que lorsque je choisi la date elle s'inscrive comme ceci.

Dans la colonne A, l'année ex: 2016
Dans la colonne B, le mois ex: Février
Dans la colonne C, le jour ex: 28
Dans la colonne D, le jour ex: Dimanche
Dans la colonne E, la semaine a laquelle cette date correspond ex; 9 parce que cette date correspond a la 9 ieme semaine sur 52

Mon problème est de déterminer la valeur de chacun

j'ai pensé a quelque chose comme ceci mais non

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
Dim d As Date
Dim d2 As Date
Dim m As interger, dd As Integer, y As Integer

d = DTPicker1.Value
m = DTPicker1.Month
dd = DTPicker1.Day
y = DTPicker1.Year

Merci de me venir en aide

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    dans le VBA de l'UF:

    Private Sub DTPicker1_CloseUp()
        d = DTPicker1.Value
        m = DTPicker1.Month
        dd = DTPicker1.Day
        y = DTPicker1.Year
        Z = semaine(d)
    End Sub
    
    'fonction trouvee sur CCM: thev 23 juil. 2009 à 17:45
    ' modifie pour format de date yyyy-mm-dd
    Function semaine(date_s)
        année = Year(date_s)
        date_premier_an = DateSerial(année, 1, 1)
        For j = 0 To 6
            date_j = date_premier_an + j
            jour = Format(date_j, "dddd", vbMonday)
            If jour = "jeudi" Then
                date_lun_semaine1 = date_j - 3
                If date_s >= date_lun_semaine1 Then
                    Exit For
                Else
                    date_premier_an = DateSerial(année - 1, 1, 1)
                    j = -1
                End If
            End If
        Next
        semaine = 1 + (CDate(date_s) - CDate(date_lun_semaine1)) \ 7
    
    End Function
    
    1. Peux tu regarder le fichier car j'ai essayé sur le miens et cela ne fonctionne pas

      Merci de ton temps

      http://www.cjoint.com/c/FBCpM1XW3Pt
      1. ok j'ai trouvé mais pour la semaine elle indique toujours 52

        as tu la solution de ton coté

        merci
        1. Génial merci

          si tu as 2 minutes aussi condition

          si les cellule dans la range P sont rempli range Q = 1 si elle ne sont pas remplie = 0

          Merci beaucoup de ton aide c'est très apprécie

          Bonne journée
          1. Re,

            Oui, mais rien n'ecrit en colonne P ??

            code a ajouter avant le End With dans Private Sub CommandButton1_Click()

                        If .Range("P" & L) <> "" Then
                            .Range("Q" & L) = 1
                        Else
                            .Range("Q" & L) = 0
                        End If
            
        2. Est ce que tu parle du fichier que tu a rempli

          si c'est le cas c'est parce que je t'ai envoyé qu'un petit fichier car celui su lequel je travail est beaucoup trop lourd.
          1. Re
            Ok, peu importe le fichier, le code est le même