filtrer Numéro de semaine listbox

jtitin

XLDnaute Occasionnel
bonjour à tous
j'ai un userform avec 3 listbox (Année, Mois, Semaine)
je cherche a faire ceci:
je sélectionne l'année puis le Mois
lorsque je clic sur un mois de la listbox (Mois) je réinitialise la listbox (Semaine) pour n'afficher que les semaines du mois sélectionné
ci joint un fichier plus explicite

merci pour votre aide
 

Pièces jointes

  • Classeur1.xlsm
    328.8 KB · Affichages: 42
  • Classeur1.xlsm
    328.8 KB · Affichages: 46
  • Classeur1.xlsm
    328.8 KB · Affichages: 49

gilbert_RGI

XLDnaute Barbatruc
Re : filtrer Numéro de semaine listbox

Bonjour

voici une fonction pour obtenir le n° de semaine européene par rapport à une date

Code:
Function NoSemEur(MaDate As Date) As Integer
NoSemEur = DatePart("ww", MaDate, 2, 2)
End Function

de là vous pouvez trouver les n° entre deux dates
 

jtitin

XLDnaute Occasionnel
Re : filtrer Numéro de semaine listbox

merci Gilbert_RGI pour ta réponse
j'utilise déjà une fonction pour alimenter ma base avec les numéro de semaine
je souhaite en sélectionnant avec 2 listbox année et mois afficher dans la 3 ème listbox uniquement les N° de semaine du mois concerné

merci
 

gilbert_RGI

XLDnaute Barbatruc
Re : filtrer Numéro de semaine listbox

possibilités

Code:
Function NoSemEur(MaDate As Date) As Integer
NoSemEur = DatePart("ww", MaDate, 2, 2)
End Function

Function derjourb(LaDate As Date)
  If Month(LaDate) = 12 Then
   derjourb = CDate("01/01/" & Year(LaDate) + 1) - 1
  Else
   derjourb = CDate("01/" & Month(LaDate) + 1 & "/" & Year(LaDate)) - 1
  End If
End Function

Sub test()
Dim PremierJour As Date
Dim DernierJour As Date
Dim j, i As Integer
PremierJour = Sheets(1).Cells(4, 1).Value
DernierJour = derjourb(PremierJour)
numdebut = NoSemEur(PremierJour)
numfin = NoSemEur(DernierJour)
For j = numdebut To numfin
Sheets(1).Cells(4 + i, 11).Value = j
i = i + 1
Next
End Sub

je vous laisse les modifications à faire pour que ça fonctionne dans votre Userform :p
 

mécano41

XLDnaute Accro
Re : filtrer Numéro de semaine listbox

Bonjour à tous,

Regarde ceci, fait sur ton fichier (je n'ai traité que les 3 listes - deux Sub: UserForm_Initialize et ListeMois_Change). Cela a l'air de fonctionner mais il reste à ajouter le code pour être sûr qu'une année ait été sélectionnée avant de sélectionner un mois ou relancer si l'on modifie l'année après avoir sélectionné le mois ... avec message éventuel ...etc enfin tout ce qu'il faut pour faire un truc sérieux :)

(c'est issu des nombreux exemples donnés dans le tutoriel de Boisgontier)

Nota : comme je mets toujours Option Explicit en début de module, il est possible que le reste de ton code te mette une erreur sur les déclarations de variables ; je n'ai pas vérifié...

Cordialement
 

Pièces jointes

  • Essai listes.xlsm
    336.7 KB · Affichages: 40
Dernière édition:

jtitin

XLDnaute Occasionnel
Re : filtrer Numéro de semaine listbox

merci Gilbert_RGI pour ton aide
mais je n'arrive pas à tranformer ton code

PremierJour = 01/ et listbox1 /et listbox2 (01/mois/année)

puis partant de là
incrémenter listbox3

For j = numdebut To numfin
listbox3.additem

merci encore
 

Statistiques des forums

Discussions
312 195
Messages
2 086 077
Membres
103 111
dernier inscrit
Eric68350