1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| Sub macro1()
Dim Ddeb As Date, Dfin As Date
Dim a As Integer
Dim Ws, X As Workbook
Dim Dcours As Long
Dim nomc As String, repertoire As String
Dim Nbjour As String
' c'est la ou se trouve mes classeurs je pense qu'on peut faire mieux dans mon code après grace a ca, mais je sais pas comment l'utiliser '
nomc = "E:\DATAS\3 - production\rapport exploitation\rapports journaliers de production\2009"
repertoire = Dir(nomc & "*xls*", vbDirectory)
' je calcule le nbre de jour entre date de début et date de fin '
Nbjour = DateDiff("s", Ddeb, Dfin)
' il me manque la fonction pour déterminer la semaine que l'on veut ouvrir en fonction de la date de début'
SemaineEnCours = DatePart("Ddeb", TaDate, vbMonday, vbFirstJan1)
For i = 0 To Nbjour
' ouverture du classeur correspondant à la semaine de la Ddeb"
Ws = Worksbooks.Open(Filename:="E:\DATAS\3 - production\rapport exploitation\rapports journaliers de production\2009" & semaine en cours & "*xls*")
'activation de la feuille de la Ddeb"
Sheets("Ddeb").Activate
' on copie les valeurs des cellules de C5 à C39 et on les colle dans la colonne de F5 à F 35 du rapport qu'on est entrain de créer.'
Set plage = Sheets(Ddeb).Range(Cells(5, 3), Cells(39, 3))
plage.Copy
Worksbooks("date.xlsm").Cells(5, 7).PasteSpecial
'On copie de meme les valeurs de C5 à C39 de la Ddeb +1 (onglet + 1 du même classeur) qu'on colle dans G5 à G39 du rapport en création date.xlsm( comment aligne t'on les données copier??) .'
'faut il l'activer avant?'
Dcours = Deb + 1
Set plage = Sheets(Dcours).Range(Cells(5, 3), Cells(39, 3))
plage.Copy
'On fait ceci jusqu'a la fin de la semaine'
ActiveWorkbook.Close savechanges:=False 'on ferme le classeur de la semaine ouverte'
X = Worksbooks.Open(Filename:="E:\DATAS\3 - production\rapport exploitation\rapports journaliers de production\2009" & f + 1 & "*xls*")
'On ouvre le classeur de la semaine en cours + 1'
'et on refait la même chose jusqu'a la fin de la semaine ( copie des cases C 5 à C 39 des 5 premiers onglets de la semaine qu'on colle sur le nouveau rapport en alignant aux autres données (voir fichier rapport nommé date.xlsm)) '
' On continue la boucle jusqu'a que la date de fin rentrée par l'utilisateur correspond à la date de l'onglet.'
Next i
End Sub |
Partager