Menu

Date picker alimenter 5 colonnes [Résolu/Fermé]

Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017
- - Dernière réponse : f894009
Messages postés
14385
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
- 28 févr. 2016 à 20:01
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
Afficher la suite 

6 réponses

Messages postés
14385
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137
0
Merci
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
0
Merci
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
0
Merci
ok j'ai trouvé mais pour la semaine elle indique toujours 52

as tu la solution de ton coté

merci
Messages postés
14385
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137
0
Merci
Re,

fichier modifie: http://www.cjoint.com/c/FBCrX2VdR1f
Messages postés
19
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
26 janvier 2017
0
Merci
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
f894009
Messages postés
14385
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
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
0
Merci
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.
f894009
Messages postés
14385
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Re
Ok, peu importe le fichier, le code est le même