chemin variable pour lire plusieur classeur

umkapolka

XLDnaute Nouveau
Bonjour
Le nom de mon fichier principal est (Semaine commensant le 2010-02-14.XLS) à A1 qui est A1= Filename()
Je cherche un moyen pour change la partie en rouge par la céllule A2= 2010-02-14 A3= 2010-02-15 A4= 2010-02-16 etc ...



B4 ='[Payroll 2010-02-14.xls]Daily (Payroll) (Total)'!$C$4
B5 ='[Payroll 2010-02-15.xls]Daily (Payroll) (Total)'!$C$4
B6 ='[Payroll 2010-02-16.xls]Daily (Payroll) (Total)'!$C$4
B7 ='[Payroll 2010-02-17.xls]Daily (Payroll) (Total)'!$C$4
B8 ='[Payroll 2010-02-18.xls]Daily (Payroll) (Total)'!$C$4
B9 ='[Payroll 2010-02-19.xls]Daily (Payroll) (Total)'!$C$4
B10 ='[Payroll 2010-02-20.xls]Daily (Payroll) (Total)'!$C$4



et la semaine suivante prendre le meme fichier principal et le renommé (Semaine commensant le 2010-02-21.XLS) à A1 qui est A1= Filename()
et change la partie en rouge par la céllule A2= 2010-02-21 A3= 2010-02-22 A4= 2010-02-23 etc ...




B4 ='[Payroll 2010-02-21.xls]Daily (Payroll) (Total)'!$C$4
B5 ='[Payroll 2010-02-22.xls]Daily (Payroll) (Total)'!$C$4
B6 ='[Payroll 2010-02-23.xls]Daily (Payroll) (Total)'!$C$4
B7 ='[Payroll 2010-02-24.xls]Daily (Payroll) (Total)'!$C$4
B8 ='[Payroll 2010-02-25.xls]Daily (Payroll) (Total)'!$C$4
B9 ='[Payroll 2010-02-26.xls]Daily (Payroll) (Total)'!$C$4
B10 ='[Payroll 2010-02-27.xls]Daily (Payroll) (Total)'!$C$4


etc... pour chaque autre semaine suivante

merci de votre reponce
 

JNP

XLDnaute Barbatruc
Re : chemin variable pour lire plusieur classeur

Re :),
Laisse tomber Feuille, vu que tu travailles toujours sur le même onglet, et qu'en réalité tu parlais de Page pour l'impression :rolleyes:...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
Dim MaDate As Date, I As Integer, J As Integer
Const NbJours As Integer = 7
MaDate = CDate(Mid(Target, 6, 10))
For J = 1 To 3
For I = -1 To -NbJours Step -1
Range("Q" & J * 10 - 9).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Payroll) (Total)'!$A$" & J + 3
Range("O" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Payroll) (Total)'!$C$" & J + 3
Range("P" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Payroll) (Total)'!$E$" & J + 3
Range("Q" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Payroll) (Total)'!$D$" & J + 3
Range("R" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Payroll) (Total)'!$F$" & J + 3
Range("S" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Payroll) (Total)'!$G$" & J + 3
Range("T" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Supervisor A)'!$P$" & J * 2 + 5
Range("U" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Supervisor B)'!$S$" & J * 2 + 6
Range("V" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Supervisor C)'!$P$" & J * 2 + 6
Range("W" & J * 10 + 1 + I).Formula = "='[Payroll " & Format(MaDate + I + 1, "yyyy-mm-dd") & ".xls]Daily (Supervisor C)'!$P$" & J * 2 + 5
Next I
Next J
Application.Calculation = xlCalculationAutomatic
For J = 1 To 3
Range("Q" & J * 10 - 9) = Range("Q" & J * 10 - 9).Value
Range("P" & J * 10 - 6 & ":W" & J * 10) = Range("P" & J * 10 - 6 & ":W" & J * 10).Value
Next J
Application.ScreenUpdating = True
End Sub
devrait fonctionner. Attention, si tu ne remets pas le calcul en route avant de remplacer les valeurs, ça risque de ne pas le faire :p...
Bonne suite :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345