creat fichier fonc N° et année

marcello06

XLDnaute Occasionnel
Salut et bon WE ;) le forum
j'ai un petit soucis j'ai récuperé et adapté une macro qui a pour but de créer un fichier excel renommer en fonction de la semaine voulue.
Le petit truc ça marche pour les semaines de l'année 2005 mais comment faire pour que cela fonctionne aussi en fonction de l'année désiré.

Merci de votre aide je bloque là.

macro
Public Sub creationsemaine2()

Workbooks.Open Filename:= _
'C:\\excel travail cello\\programmation semaine technique clientele\\Sem XX 2006.xls'

Dim Jour As Date
Dim semaine As Byte
Dim lundidate As Date
semaine = InputBox('semaine ?')

Jour = DateSerial(Year(Date), 1, 1)

lundidate = CDate(IIf(Jour > 5, Jour - Weekday(Jour) + 2, Jour - Weekday(Jour) - 5) + 7 * semaine)
ActiveWorkbook.SaveCopyAs Filename:='Sem' & ' ' & semaine & ' ' & '2005' & '.xls'

Workbooks('Sem XX 2006.xls').Close
Workbooks.Open Filename:='Sem' & ' ' & semaine & ' ' & '2005' & '.xls'
Range('E2').Value = semaine
Range('G2').Value = lundidate
Range('L2').Value = lundidate + 4

End Sub
 

Hervé

XLDnaute Barbatruc
Bonjour marcello, le forum

Une proposition tenant compte de l'année :

Public Sub creationsemaine2()
Dim Jour As Date
Dim semaine As Byte
Dim lundidate As Date
Dim annee As Integer

'Workbooks.Open Filename:= _
C:excel travail celloprogrammation semaine technique clienteleSem XX 2006.xls

On Error GoTo fin 'gestion des annuler des inputbox
semaine = InputBox('semaine ?')
annee = InputBox('année ?    (format:aaaa)')
Jour = DateSerial(annee, 1, 1)

lundidate = CDate(IIf(Jour > 5, Jour - Weekday(Jour) + 2, Jour - Weekday(Jour) - 5) + 7 * semaine)
ActiveWorkbook.SaveCopyAs Filename:='Sem' & ' ' & semaine & ' ' & annee & '.xls'

Workbooks.Open Filename:='Sem' & ' ' & semaine & ' ' & annee & '.xls'
Range('E2').Value = semaine
Range('G2').Value = lundidate
Range('L2').Value = lundidate + 4

fin:

End Sub


bon dimanche

salut
 

marcello06

XLDnaute Occasionnel
Hervé ça marche pour les années 2005 mais il semble que pour 2006 un décala se produit si je prends une semaine en 2005 il me donne bien le lundi de la semaine voulue si je place un N° de sem avec l'année 2006 il me donne le lundi de la semaine suivante?

je ne comprends pas ce décalage peux t on m'aider a résoudre?

@+
 

Discussions similaires