Ajout d'un nombre de semaines à une date [Résolu]

chris_ij32 5 Messages postés mercredi 6 mai 2009Date d'inscription 5 avril 2011 Dernière intervention - 5 avril 2011 à 11:21 - Dernière réponse : Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention
- 5 avril 2011 à 13:07
Bonjour,
J'ai un formulaire contenant une date (ex : date de début de stage) et une zone de texte dans laquelle je tape la durée du stage en semaines. Je voudrais que dans une nouvelle zone de texte s'affiche la date de fin de stage.
J'ai essayé avec la fonction DateAdd :

v_durée_stage = f_gestion_contacts.txt_durée_stage
v_date_stage = f_gestion_contacts.txt_date_stage
v_date_fin_stage = cnum(v_date_stage) + (v_durée_stage * 7)
DateAdd("w", v_durée_stage,v_date_stage)
MsgBox "voilà la date fin" & Format("dd/mm/yy", v_date_fin_stage)

Mais cela ne fonctionne pas du tout.
Merci pour votre aide.


Cordialement
Chris
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
chris_ij32 5 Messages postés mercredi 6 mai 2009Date d'inscription 5 avril 2011 Dernière intervention - 5 avril 2011 à 12:12
3
Merci
En fait j'ai trouvé la solution, la voici :

Dim v_durée_stage As Integer
Dim v_date_stage As Date, v_date_fin_stage As Date

v_durée_stage = Val(f_gestion_contacts.txt_durée_stage)
If IsDate(f_gestion_contacts.txt_date_stage) Then v_date_stage = CDate(f_gestion_contacts.txt_date_stage)
v_date_fin_stage = DateAdd("ww", v_durée_stage, v_date_stage)
MsgBox v_date_fin_stage


Encore merci pour ta réactivité et ton aide.
Sans doute à très bientôt, cette application me donne du fil à retordre.
Cordialement
Chris

Merci chris_ij32 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de chris_ij32
Meilleure réponse
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 5 avril 2011 à 13:07
3
Merci
1°) Mauvaise catégorie, il s'agit de VBA que je connais pratiquement pas.

2°) Tu aurais du ouvrir un nouveau post puisqu'il s'agit d'une autre question.

3°) La 1ère question étant réglée, n'oublie pas de cliquer sur le bouton "Réponse Acceptée".

4°) D'Où sort cette fonction WeekNum(), s'il ne la connait pas c'est qu'il ne s'agit pas d'une fonction Excel (peut-être WeekNumber ?), s'il s'agit d'une fonction à toi, où est-elle située, dans un module quelle est sa portée, dans une form, qualifie avant du nom de ta form.


Calade

Merci Calade 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Calade
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 5 avril 2011 à 11:46
0
Merci
Bonjour,

Il y a quelque chose que je ne comprends pas, tu dis que la durée est dans une TextBox, comment s'appelle t'elle ?

Pourquoi récupérer sa valeur comme ça
f_gestion_contacts.txt_durée_stage
et non comme ça
f_gestion_contacts.txt

dans quoi est contenu ta date, un TextBox, un DTPicker...?

Ensuite, le DateAdd, je l'écrirais comme ça:
DateAdd("w", val(v_durée_stage.text),v_date_stage)
pour v_date_stage, cela dépend du contrôle utilisé.

Enfin, ça ne marche pas n'est pas très explicite, as-tu une erreur et si oui laquelle ?


Calade
Commenter la réponse de Calade
chris_ij32 5 Messages postés mercredi 6 mai 2009Date d'inscription 5 avril 2011 Dernière intervention - 5 avril 2011 à 12:05
0
Merci
Merci pour ta réponse, v_date_stage provient de la textbox txt_durée_chose qui affiche le contrôle calendrier, date que je renvoie dans la meme textbox txt_date_stage.

v_durée_stage = f_gestion_contacts.txt_durée_stage
v_date_stage = f_gestion_contacts.txt_date_stage
DateAdd("w", val(v_durée_stage.text),v_date_stage)
MsgBox "voilà la date fin" & Format("dd/mm/yy", v_date_fin_stage)

Toujours le même message d'erreur :


Cordialement
Chris
Commenter la réponse de chris_ij32
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 5 avril 2011 à 12:09
0
Merci
Toujours le même message d'erreur, certes mais lequel ???

Le format dans ta MagBox n'inclut pas l'heure, elle ne risque pas de s'afficher.


Calade
Commenter la réponse de Calade
chris_ij32 5 Messages postés mercredi 6 mai 2009Date d'inscription 5 avril 2011 Dernière intervention - 5 avril 2011 à 12:59
0
Merci
Maintenant il me faut écrire tout ça dans la feuille planning, et cette fois je dois renvoyer les numéros de semaines pour le début et la fin de stage.
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
Commenter la réponse de chris_ij32

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.