Fonction numéro de semaine en EXCEL VBA et remplissage d'un planning [Résolu]

Messages postés
5
Date d'inscription
mercredi 6 mai 2009
Dernière intervention
5 avril 2011
- - Dernière réponse : cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 5 avril 2011 à 14:01
Je dois écrire dans la feuille planning le contenu de les contrôles saisis sur mon formulaire. J'ai une date début stage et une durée de stage en semaines. Dans la feuille planning en sus des date début et fin de stage, je dois renvoyer les numéros de semaines pour le début et la fin de stage dans le but de remplir les colonnes correspondant aux numéros de semaine de l'année.
Actuellement j'ai dans mes formules, elles fonctionnent très bien :
- pour la date début en D4, la formule du n° de semaine en E4 est :
=SI($D4<40543;0;(NO.SEMAINE($D4;2)-1))- pour la date fin en F4, la formule du n° de fin de semaine en G4 est :
=SI($F4>40908;52;(NO.SEMAINE($F4;2)-1))

Cependant je voudrais inscrire mon nouveau stagiaire "automatiquement" et j'ai essayé de transcrire ça en VBA, voici le code :
ActiveCell.Value = v_id
ActiveCell.Offset(0, 1) = v_id_tuteur
ActiveCell.Offset(0, 2) = v_service
'date début stage
ActiveCell.Offset(0, 3) = v_date_stage
'numéro de la semaine du début du stage
v_num_sem_début = WeekNum(v_date_stage)
ActiveCell.Offset(0, 4) = v_num_sem_début
'date fin stage
ActiveCell.Offset(0, 5) = v_date_fin_stage
'numéro de la dernière semaine de stage
v_num_sem_fin = WeekNum(v_date_fin_stage)
ActiveCell.Offset(0, 6) = v_num_sem_fin
'remplissage du planning semaines 1 à 52
ActiveCell.Offset(0, 7) = "=IF(AND(R2C>=RC5,R2C<=RC7),LEFT(RC3,1),"""")"
MsgBox "Le traitement de la feuille planning est terminé !"

Le traitement de la feuille est loin d'être terminé, il me dit que la fonction WeekNum n'existe pas, quand au remplissage des semaines 1 à 52 avec le code de service, par exemple : je voudrais remplir de C les semaines 6 à 12 (selon la durée du stage), là c'est la catastrophe, je me vois mal écrire 52 if pour remplir le tableau.

Merci pour votre aide.
Cordialement
Chris
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
75
3
Merci
Salut

Les informations liées aux dates sont dispo dans la fonction Format :
Format(Now, "ww", vbMonday, vbFirstFourDays)

Now (exemple) est la date à tester
vbMonday désigne le premier jour de la semaine (dimanche chez US)
vbFirstFourDays désigne la méthode de calcul des n° de semaine

Voir l'aide pour les autres infos que l'on peut extraire de cette fonction

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

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

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.