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

dehollain Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
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

6 réponses

blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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
hamziix
 
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   Statut Membre Dernière intervention   1
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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   Statut Membre Dernière intervention   14
 
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