Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ken Hutchinson

XLDnaute Occasionnel
Re ola !!!

Je cherche a calculer le numéro de semaine à partir d'une date. mais je galère avec la fonction NO.SEMAINE car je n'arrive pas à l'intégrer dans une boucle...

je cherche la correspondance en vba de cette fonction... qui me semble être datepart... mais je ne capte rien à l'aide d'excel sur cette fonction...

pouvez vous m'aider svp ?
 
Re : Numéro de semaine

Re


Essaye cette macro pour test
Code:
Sub test()
Dim NUMSEM as Integer
NUMSEM= DatePart("ww", Date, vbMonday, vbFirstFourDays)
Msgbox NUMSEM
End sub
Tu peux aussi par formule
ou D est la date

=ENT((D+5-SOMME(MOD(DATE(ANNEE(D-MOD(D-2;7)+3);1;2);{1E+99;7})*{1;-1}))/7)

ce qui donne
=ENT((AUJOURDHUI()+5-SOMME(MOD(DATE(ANNEE(AUJOURDHUI()-MOD(AUJOURDHUI()-2;7)+3);1;2);{1E+99;7})*{1;-1}))/7)

Ceci étant une formule des plus longues

En plus court: exemple en A1 tu as : 25/10/2007
en B1 tu saisis la formule ci-dessous:

=ENT(MOD(ENT((A2-2)/7)+0,6;52+5/28))+1
 
Dernière édition:
Re : Numéro de semaine

OK !!

ça marche mais pour bien comprendre :

il faut que je remplace "Date" dans la fonction par la cellule qui contient ma date ?

car je possède un fichier avec une colonne remplie de dates en regard desquelles je veux mettre le n uméro de semaine

et je veux en faire une boucle jusqu'à ce qu'il n'y ait plus de date a convertir...
 
Re : Numéro de semaine

Bonjour Key,
Tu adaptes les N° de ligne et de colonne
Code:
Sub LeTest()
Dim Plage1 As Range, cell As Range
Dim NoCol, DerniereLigne
    NoCol = 3 'en supposant que tes dates soient en colonne 3
    DerniereLigne = Cells(Columns(NoCol).Cells.Count, NoCol).End(xlUp).Row
    'En supposant que tes dates commencent ligne 2
    Set Plage = Range(Cells(2, NoCol), Cells(DerniereLigne, NoCol))
        For Each cell In Plage
            'en supposant que tu mettes les N° de semaine en colonne 4
            Range(cell.Address).Offset(0, 1) = DatePart("ww", cell, vbMonday, vbFirstFourDays)
        Next
    Set Plage = Nothing
End Sub
@+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
585
Retour