Menu

En vba n° de semaine à partir d'une date [Résolu/Fermé]

- - Dernière réponse :  ca - 11 nov. 2017 à 13:35
Bonsoir à tous,
En vb j'ai petit problème:
J'ai des articles en colonne A, j'ai des date en colle D. J'aimerais que tant qu'il ya quelque chose sur ma colonne A je renvoie en colonne C le n° de semaine qui se trouve en D. A savoir que si la date de la colonne D est inférieur à la date du jour, je met le n° de semaine de la date du jour. Merci de votre aide.

Afficher la suite 

10 réponses

Meilleure réponse
4
Merci
Non, la date se trouve en C et en D j'ai la formule qui me renvoi le n° de semaine suivant les conditions qu'il y a dans la formule. Mais je voudrais que cette formule soit écrite en VB ex:
If Range("C2")< today() then
Range ("D2") = n°de la semaine d'aujourd'hui
Je ne suis pas doué en VB.
Merci de ton aide.

Dire « Merci » 4

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 39390 internautes nous ont dit merci ce mois-ci

merci pour tes infos
cordialement
Messages postés
22726
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
13 mai 2019
7373
2
Merci
Re,

Déjà une fonction personnaliséeque tu pourras réutiliser dans le classeur (à mettre dans un module) :
Function NoSemaineISO(d As Date) As Integer
    NoSemaineISO = Format(d, "ww", vbMonday, vbFirstFourDays)
End Function

et la macro qui traite ta feuille :
Sub semISO()
    Dim lig As Long
    For lig = 1 To [A65536].End(xlUp).Row
        If Cells(lig, 1) <> "" And IsDate(Cells(lig, 3)) Then
            Cells(lig, 4) = NoSemaineISO(Cells(lig, 3))
        End If
    Next lig
End Sub


Précise si c'était un autre fonctionnement que tu voulais.
eric
Messages postés
16889
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 mai 2019
5130
1
Merci
Re,

Il est possible d'écrire plusieurs formule pour calculer le n° semaine

=NO.SEMAINE(B2;2)
ou encore
=ENT(MOD(ENT((B2-2)/7)+0,6;52+5/28))+1
mais il en existe bien d'autre qui donnent pas tout a fait le même résultat exemple 01/01/2010 jusqu'au 04/01/2010 certaines donne 53 éme semaine qui est en fait la fin de la dernière semaine de l'année précédente, d'autre commence par 1ére semaine au premier janvier ce qui donne un décalage de 1

je te donne deux formules à placer en C2

=SI(A2<>"";NO.SEMAINE(B2;2);"")

ou

=SI(A2<>"";ENT(MOD(ENT((B2-2)/7)+0,6;52+5/28))+1;"")

Si tu tiens au VBA c'est tout à fait possible, mais pourquoi faire compliqué
Messages postés
22726
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
13 mai 2019
7373
1
Merci
Bonsoir,

Si ta colonne C est également entièrement remplie (sans cellule vide) double-clique sur la poignée de recopie (le petit carré noir en bas à droite de ta cellule sélectionnée).
Ta formule se recopiera jusqu'en bas.
eric
1
Merci
Super, merci Eric c'est ce que je voulais, comment je fais pour clore ma question ?

Et encore merci, bonne soirée.
0
Merci
Personne à une petite idée ..
Messages postés
16889
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 mai 2019
5130
0
Merci
Salut,

Tiens tu vraiment à du VBA, il est possible de faire ça par simple formule
0
Merci
Bonsoir et merci de m'avoir répondu,
je connais la formule pour trouver ma semaine, le problème c'est de la dupliquer tant que j'ai des articles dans colonne A et le nombre de ligne est variable d'une semaine à l'autre. Merci de ton aide
0
Merci
Merci Mike, je connais la formule j'ai écris ceci
=SI(C2<AUJOURDHUI();ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;ENT(MOD(ENT((C2-2)/7)+0,6;52+5/28))+1)
çà fonctionne très bien même avec la semaine 53, le problème c'est que je veux dupliquer cette formule tant que j'ai des données dans ma colonne A et d'une semaine à l'autre elles changes. Merci encore pour ton aide.
0
Merci
Bonsoir Eric et merci de ta réponse,
je connais tout ça mais ce n'est pas moi qui l'utilise et les personnes ne trouvent pas le pointeur ou me décalent les celules, c'est pourquoi je veux l'écrire en VB avec un bouton et voilà.
Merci de ton aide.
eriiic
Messages postés
22726
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
13 mai 2019
7373 -
Il faut écraser la date qui est en D par le n° de semaine ou tu t'es mélangée dans les colonnes ?
Et faut-il écrire en temps réel sur une saisie de date aussi ?