[EXCEL]-Convertir un numéro de semain en mois

Fermé
dehollain Messages postés 2 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 31 août 2007 - 31 août 2007 à 10:20
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 11 mai 2009 à 18:25
Bonjour à tous !

Sur Excel, je souhaiterais convertir un numéro de semaine (1 à 52) en numéro de mois (1 à 12).

Avez-vous une solution simple ?

Merci d'avance
A voir également:

6 réponses

blux Messages postés 25966 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 avril 2024 3 284
31 août 2007 à 11:34
Ben tu fais une division de ton numéro de semaine par 4 (car il y a environ 4 semaines dans un mois) et tu arrondis à l'entier supérieur...

Mais je ne vois vraiment pas l'intérêt...
2
Salut molo , ché pa sii sa t'aide mais jpeu te concevoir un pgme quii fé ta requette , soff ke sa sera pa compatible avec Exel , tu para utilisé mon pgme sou windows & copier le resultat MANUELLEMENT ( faire COPIER/COLLER )
sii sa te dis contactes moii sur ma boite : hamza@kaabeche.com
mercii & bon courage molow
...HAMZiiX
0
dehollain Messages postés 2 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 31 août 2007 1
31 août 2007 à 11:22
La préccision de la mesure est certe important mais pas primordiale.

Pour les semaines à cheval sur 2 mois on ne peut qu'approcher la bonne réponse, une date donnerait une réponse précise mais dans mon cas je ne souhaite qu'approcher la réponse en automatique.
1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 sept. 2008 à 09:46
Bonjour,
sais pas si c'est assez simple pour toi mais je n'ai pas trouver de solution plus simple.
Sub Sem_Jour()
Dim Sem As Integer
Dim Jour As Integer
Dim Mois As Integer
Dim D As Long, F As Long
Dim W As Integer
Dim TB
    Sem = 22 'exemple du N° de semaine
    
    TB = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
    D = DateSerial(Year(Now), 1, 1)
    F = DateSerial(Year(Now), 12, 31)
    TB(1) = TB(1) + ((F - D) - 365)
    W = Weekday(D, vbMonday) 'Lundi=jour 1 de semaine
    Jour = ((Sem - 1) * 7)
    If W < 5 Then Jour = Jour + W - 1
    For Mois = 0 To 11
        W = W + TB(Mois)
        If W > Jour Then Exit For
    Next Mois
    Mois = Mois + 1
    
End Sub

Si tu le voulais par formule tu dit, je la transforemer en fonction.
A+
1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 mai 2009 à 18:25
Bon, beh aujourd'hui j'ai trouver autre chose
Dans un module général (type Module1 tu colle le code ci-dessous
Public Function SEM_MOIS(Sem As Range) As Integer
Dim NbJours As Integer, D As Long
    Application.Volatile
    If Sem < 1 Or Sem > 52 Then
        SEM_MOIS = "#ERREUR"
        Exit Function
    End If
    D = Weekday("01/01/" & Year(Now), vbUseSystemDayOfWeek)
    NbJours = ((Sem - 1) * 7) - D + 1
    D = DateValue("01/01/" & Year(Now)) + NbJours
    SEM_MOIS = Month(D)
End Function

Et tu l'emploi comme une formule excel
si le N° de la semaine est, par exemple, en C23 tu met dans la colonne D
    =SEM_MOIS(C23)

A+
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 25966 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 avril 2024 3 284
31 août 2007 à 10:32
Salut,

pas facile puisqu'une semaine peut être à cheval sur 2 mois...

Plus de précision à donner ?
0
magpie Messages postés 43 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 8 février 2012 14
11 mai 2009 à 15:58
lermite222 salut,

je cherche comment convertir un numero de semaine en mois.

Cette procédure me semble tout à fait pertinente mais je ne vois pas comment l'utiliser (quoi récupérer).

Est ce que tu peux la transformer en formule, sinon en fonction qui renvoie le numero du mois ?

Merci.
0