Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trouver le no de semaine

8 réponses
Avatar
Fuentes Mickael
Bonjour à tous,
je viens soliciter votre aide pour un probleme tout simple,
j'ai 3 colonnes, A pour je jour, B pour le mois et C pour l'année.
Je voudrais connaitre le no de semaine correspondant par ligne.
Es ce qu'il faut que je CONCATENE pour obtenir quelque chose sous la forme
jj/mm/aaaa ?

Merci par avance.
Micky

8 réponses

Avatar
JP25
Bonjour,
fonction no.semaine (de la cellule contenant l'année)
si cette fonction n'est pas reconnue, tu click Outils/Macros complémentaires
et tu selectionnes
Solveur
Utilitaire d'analyse
Utilitaire d'analyse VBA

--
Cordialement
JP25


"Fuentes Mickael" a écrit dans le message de news:

Bonjour à tous,
je viens soliciter votre aide pour un probleme tout simple,
j'ai 3 colonnes, A pour je jour, B pour le mois et C pour l'année.
Je voudrais connaitre le no de semaine correspondant par ligne.
Es ce qu'il faut que je CONCATENE pour obtenir quelque chose sous la forme
jj/mm/aaaa ?

Merci par avance.
Micky




Avatar
Corto
Bonjour Fuentes Mickael,
Attention la fonction no.semaine renvoie le numéro de semaine selon la
norme US, pour obtenir le numéro de semaine ISO (utilisé en Europe) :
=ENT(MOD(ENT((DATE-2)/7)+0.6;52+5/28 ))+1 ou alors par VBA
Function NumSemISO(XDATE As Date) As Integer
NumSemISO = ((Int(XDATE) - DateSerial(Year(Int(XDATE) + (8 -
Weekday(Int(XDATE))) _
Mod 7 - 3), 1, 1) - 3 + (Weekday(DateSerial(Year(Int(XDATE) + _
(8 - Weekday(Int(XDATE))) Mod 7 - 3), 1, 1)) + 1) Mod 7)) 7 + 1
End Function

Corto

Bonjour à tous,
je viens soliciter votre aide pour un probleme tout simple,
j'ai 3 colonnes, A pour je jour, B pour le mois et C pour l'année.
Je voudrais connaitre le no de semaine correspondant par ligne.
Es ce qu'il faut que je CONCATENE pour obtenir quelque chose sous la fo rme
jj/mm/aaaa ?

Merci par avance.
Micky





Avatar
JP25
Bonjour Corto,
D'accord avec toi, mais la seule diffèrence concerne les 2 derniers jours de
l'année (30-31/12) qui te renvoie S53
Es tu d'accord ?
--
Cordialement
JP25


"Corto" a écrit dans le message de news:

Bonjour Fuentes Mickael,
Attention la fonction no.semaine renvoie le numéro de semaine selon la
norme US, pour obtenir le numéro de semaine ISO (utilisé en Europe) :
=ENT(MOD(ENT((DATE-2)/7)+0.6;52+5/28 ))+1 ou alors par VBA
Function NumSemISO(XDATE As Date) As Integer
NumSemISO = ((Int(XDATE) - DateSerial(Year(Int(XDATE) + (8 -
Weekday(Int(XDATE))) _
Mod 7 - 3), 1, 1) - 3 + (Weekday(DateSerial(Year(Int(XDATE) + _
(8 - Weekday(Int(XDATE))) Mod 7 - 3), 1, 1)) + 1) Mod 7)) 7 + 1
End Function

Corto

Bonjour à tous,
je viens soliciter votre aide pour un probleme tout simple,
j'ai 3 colonnes, A pour je jour, B pour le mois et C pour l'année.
Je voudrais connaitre le no de semaine correspondant par ligne.
Es ce qu'il faut que je CONCATENE pour obtenir quelque chose sous la forme
jj/mm/aaaa ?

Merci par avance.
Micky





Avatar
Fuentes Mickael
Si ça peut aider quelqu'un d'autre, j'ai utiliser la fonction concatener
pour avoir une date format jj/mm/aaaa
et j'ai utilisé la formule : (S2) etant la celule ou se trouve la date
format jj/mm/aaaa)


ENT((S2-DATE(ANNEE(S2);2;1)+SI(JOURSEM(DATE(ANNEE(S2);2;1))>1;JOURSEM(DATE(A

NNEE(S2);2;1))-2;JOURSEM(DATE(ANNEE(S2);1;1))+5))/7)+5


J'ais essayer ta methode JP25, elle est boucoup plus rapide.
et merci encore à vous de votre aide.

Micky


Avatar
Misange
Bonjour JP

Non pas du tout :-)
Pour rappel, NO.SEMAINE (formule excel qui requiert que l'utilitaire
d'analyse soit chargé) renvoie le numéro de semaine selon la norme
américaine : la semaine 1 est celle qui inclut le 1er janvier. Si vous
êtes à l'ouest de la grande bleue, cette fonction est donc pour vous.
Alors que pour la norme européenne, la semaine 1 est la première semaine
qui comporte au moins 4 jours dans l'année : il faut que le 1er janvier
soit au plus tard un jeudi pour qu'il soit en semaine 1.
http://www.excelabo.net/excel/semaines.php#numerosemaine
Le décalage ne se fait donc pas sur les deux derniers jours de l'année
mais suivant les années il ne se fait pas ou se fait sur toutes les
semaines de l'année ...

Par ailleurs, je vois mal comment en entrant 2007 dans une cellule, on
peut calculer le N° de semaine, quelle que soit la norme(!).
Pas plus en concaténant le mois et l'année. Donc oui, il faut
effectivement reconstruire une date valide à partir des 3 colonnes et à
partir de là, suivant le côté de l'atlantique où l'on est calculer le N°
de semaine.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Corto,
D'accord avec toi, mais la seule diffèrence concerne les 2 derniers jours de
l'année (30-31/12) qui te renvoie S53
Es tu d'accord ?


Avatar
FFO
Bonjour à toi

Je te propose une solution macro

Soit dans Feuil1 colonne A = le jour colonne B = le mois colonne C = l'année
colonne D le numéro de la semaine

Pour une même année colonne C (07 dans cet exemple) le code :

Année = "07"
If Format(CDate("01/01/" & Année), "dddd") = "lundi" Then
Semaine = 0
Else
Semaine = 1
End If
For i = 0 To 365
If Format(CDate("01/01/" & Année) + i, "dddd") = "lundi" Then
Semaine = Semaine + 1
End If
Date = CDate("01/01/" & Année) + i
For Each c In Worksheets("Feuil1").Range([A1], [A65535].End(xlUp))
A = CDate(c & "/" & c.Offset(0, 1) & "/" & c.Offset(0, 2))
If CDate("01/01/" & Année) + i = CDate(c & "/" & c.Offset(0, 1) & "/" &
c.Offset(0, 2)) Then
c.Offset(0, 3) = Semaine
End If
Next
Next

Traitement rapide

Pour plusieurs années dans la colonne C ce code (10 ans dans cet exemple)

For j = 0 To 10
If Format(CDate("01/01/" & j), "dddd") = "lundi" Then
Semaine = 0
Else
Semaine = 1
End If
For i = 0 To 365
If Format(CDate("01/01/" & j) + i, "dddd") = "lundi" Then
Semaine = Semaine + 1
End If
Date = CDate("01/01/" & j) + i
For Each c In Worksheets("Feuil1").Range([A1], [A65535].End(xlUp))
A = CDate(c & "/" & c.Offset(0, 1) & "/" & c.Offset(0, 2))
If CDate("01/01/" & j) + i = CDate(c & "/" & c.Offset(0, 1) & "/" &
c.Offset(0, 2)) Then
c.Offset(0, 3) = Semaine
End If
Next
Next
Next

Traitement plus long

Celà devrait convenir



Bonjour à tous,
je viens soliciter votre aide pour un probleme tout simple,
j'ai 3 colonnes, A pour je jour, B pour le mois et C pour l'année.
Je voudrais connaitre le no de semaine correspondant par ligne.
Es ce qu'il faut que je CONCATENE pour obtenir quelque chose sous la forme
jj/mm/aaaa ?

Merci par avance.
Micky





Avatar
JP25
Bonjour Misange,
Ok et merci pour cette leçon, j'ai fait l'erreur de mettre par rapport à
l'année (bien sur), mais hormis le résultat US,
je trouve plus judicieux d'entrer une date, puis de cette date, sortir
annéee, mois, jour, semaine !
Tout dépend des besoins de l'utilisateur
C'est vrai que si les données sont existante on a pas le choix
--
Cordialement
JP25


"Misange" a écrit dans le message de news:

Bonjour JP

Non pas du tout :-)
Pour rappel, NO.SEMAINE (formule excel qui requiert que l'utilitaire
d'analyse soit chargé) renvoie le numéro de semaine selon la norme
américaine : la semaine 1 est celle qui inclut le 1er janvier. Si vous
êtes à l'ouest de la grande bleue, cette fonction est donc pour vous.
Alors que pour la norme européenne, la semaine 1 est la première semaine
qui comporte au moins 4 jours dans l'année : il faut que le 1er janvier
soit au plus tard un jeudi pour qu'il soit en semaine 1.
http://www.excelabo.net/excel/semaines.php#numerosemaine
Le décalage ne se fait donc pas sur les deux derniers jours de l'année
mais suivant les années il ne se fait pas ou se fait sur toutes les
semaines de l'année ...

Par ailleurs, je vois mal comment en entrant 2007 dans une cellule, on
peut calculer le N° de semaine, quelle que soit la norme(!).
Pas plus en concaténant le mois et l'année. Donc oui, il faut
effectivement reconstruire une date valide à partir des 3 colonnes et à
partir de là, suivant le côté de l'atlantique où l'on est calculer le N°
de semaine.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Corto,
D'accord avec toi, mais la seule diffèrence concerne les 2 derniers jours
de l'année (30-31/12) qui te renvoie S53
Es tu d'accord ?




Avatar
Modeste
Bonsour® Fuentes Mickael avec ferveur ;o))) vous nous disiez :

Bonjour à tous,
je viens soliciter votre aide pour un probleme tout simple,
j'ai 3 colonnes, A pour je jour, B pour le mois et C pour l'année.
Je voudrais connaitre le no de semaine correspondant par ligne.
Es ce qu'il faut que je CONCATENE pour obtenir quelque chose sous la
forme jj/mm/aaaa ?


en colonne D
D1=ENT(MOD(ENT((DATE(C1;B1;A1)-2)/7)+0,6;52+5/28))+1

@+
;o)))