Date picker alimenter 5 colonnes

Résolu/Fermé
Signaler
Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017
-
Messages postés
16121
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2021
-
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

Messages postés
16121
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2021
1 563
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
Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017

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
Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017

ok j'ai trouvé mais pour la semaine elle indique toujours 52

as tu la solution de ton coté

merci
Messages postés
16121
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2021
1 563
Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017

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
Messages postés
16121
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2021
1 563
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
Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017

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.
Messages postés
16121
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2021
1 563
Re
Ok, peu importe le fichier, le code est le même