Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 ...
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 ...
Bonne suite
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…