Mettre à jour des valeurs via des fichier modifié hebdo

Bonjour,

Voilà mon problème:

J'ai un fichier mère ou je dois écrire tous les jours en C4 C5 C6 & C7 des valeurs.

Ces valeurs je l'ai trouve dans un fichier excel, qui a pour nom par exemple: \2018.03\2018-S10\01-Lundi.xlsm dans les cellules D18 D19 E18 E19.

Question: y a t'il une solution pour qu'automatiquement mes cellules s'affiche dans mon fichier mère en sachant que tous les jours j'ai un nouveau fichier fille avec la même mise en page et les même cellules à prendre, juste le chemin du fichier qui change en fonction du jour et/ou de la semaine ?

CRDLT

Bonjour,

En attendant un peut plus d'explications, voici un code qui permet de construire le chemin (du moins les deux derniers dossiers) avec le nom du fichier en fonction de la date :

Sub Test()

    Dim LaDate As Date
    Dim L As Date
    Dim Chemin As String
    Dim Dos As String
    Dim SousDos As String
    Dim Fichier As String

    LaDate = Date 'date du jour

    Dos = Year(LaDate) & "." & Format(Month(LaDate), "00")

    L = DateSerial(Year(LaDate - Weekday(LaDate - 1) + 4), 1, 1)
    SousDos = Year(LaDate) & "-S" & Int((LaDate - L + Weekday(L) + 5) / 7)

    Fichier = Format(Weekday(LaDate, 2), "00") & "-" & WeekdayName(Weekday(LaDate, 2), , 2) & ".xlsm"
    Chemin = Dos & "\" & SousDos & "\" & Fichier

    MsgBox Chemin

End Sub

Bonjour,

Je vous ai mit un complément d'info dans ce fichier excel avec la macro si dessus.

En vous remerciant

CRDLT

et voici l'exemple concret du chemin de mon fichier fille qui changera tous les jours

H:\LOULOU\LOULOU_Production_HAPP\préparations tableaux de banane\Tableaux de banane\2018.04\2018-S14\02-Mardi.xlsm

up

Tu fais un Up mais tu montres maintenant un chemin qui n'est pas conforme à ce que j'ai donné comme exemple car nous sommes bien mardi et le second jour de la semaine "02-Mardi.xlsm" mais nous sommes la semaine 15 alors que dans le dossier "2018-S14" S14 indique, pour moi, la quatorzième semaine ou alors j'ai mal interprété :

H:\LOULOU\LOULOU_Production_HAPP\préparations tableaux de banane\Tableaux de banane\2018.04\2018-S14\02-Mardi.xlsm

Donc, si l'année, le mois, le numéro de semaine et le jour ne correspondent pas à une date précise, comment veux-tu trouver le fichier ?

Maintenant, une piste pour récupérer les valeurs (si j'ai bien compris !) :

Sub Recup()

    Dim Cls As Workbook
    Dim Chemin As String
    Dim Fichier As String

    Chemin = "H:\LOULOU\LOULOU_Production_HAPP\préparations tableaux de banane\Tableaux de banane\2018.04\2018-S14\"
    Fichier = "02-Mardi.xlsm"

    Set Cls = Workbooks.Open(Chemin & Fichier)

    With ThisWorkbook.Worksheets("RECAP")

        .Range("C3").Value = Cls.Worksheets("Equipe1").Range("D18").Value
        .Range("C4").Value = Cls.Worksheets("Equipe1").Range("E18").Value
        .Range("C5").Value = Cls.Worksheets("Equipe1").Range("D19").Value
        .Range("C6").Value = Cls.Worksheets("Equipe1").Range("E19").Value

    End With

    With Cls.Worksheets("RECAP")

        .Range("C3").Value = Cls.Worksheets("Equipe2").Range("D18").Value
        .Range("C4").Value = Cls.Worksheets("Equipe2").Range("E18").Value
        .Range("C5").Value = Cls.Worksheets("Equipe2").Range("D19").Value
        .Range("C6").Value = Cls.Worksheets("Equipe2").Range("E19").Value

    End With

    With Cls.Worksheets("RECAP")

        .Range("C3").Value = Cls.Worksheets("Equipe3").Range("D18").Value
        .Range("C4").Value = Cls.Worksheets("Equipe3").Range("E18").Value
        .Range("C5").Value = Cls.Worksheets("Equipe3").Range("D19").Value
        .Range("C6").Value = Cls.Worksheets("Equipe3").Range("E19").Value

    End With

    Cls.Close False

End Sub

Re je te premièrement je te remercie de ton temps

deuxièmement j'ai réadapter la position des cellules et ça fonctionne, et j'ai une erreur de syntaxe sur la ligne en gras souligné apparement parce que mon chemin et mon fichier saffiche non pas de '\' entre les deux

cordialement

Sub Recup()

Dim Cls As Workbook

Dim LaDate As Date

Dim L As Date

Dim Chemin As String

Dim Dos As String

Dim SousDos As String

Dim Fichier As String

LaDate = Date 'date du jour

Dos = Year(LaDate) & "." & Format(Month(LaDate), "00")

L = DateSerial(Year(LaDate - Weekday(LaDate - 1) + 4), 1, 1)

SousDos = Year(LaDate) & "-S" & Int((LaDate - L + Weekday(L) + 5) / 7)

Fichier = Format(Weekday(LaDate, 2), "00") & "-" & WeekdayName(Weekday(LaDate, 2), , 2) & ".xlsm"

Chemin = ""H:\LOULOU\LOULOU_Production_HAPP\préparations tableaux de banane\Tableaux de banane\Dos & " \ " & SousDos & "

[u]

Set Cls = Workbooks.Open(Chemin & Fichier[/u])

With ThisWorkbook.Worksheets("EQUIPE 1")

.Range("C4").Value = Cls.Worksheets("Recap").Range("D18").Value

.Range("C6").Value = Cls.Worksheets("Recap").Range("E18").Value

.Range("C5").Value = Cls.Worksheets("Recap").Range("D19").Value

.Range("C7").Value = Cls.Worksheets("Recap").Range("E19").Value

End With

With ThisWorkbook.Worksheets("EQUIPE 2")

.Range("C4").Value = Cls.Worksheets("Recap").Range("F18").Value

.Range("C6").Value = Cls.Worksheets("Recap").Range("G18").Value

.Range("C5").Value = Cls.Worksheets("Recap").Range("F19").Value

.Range("C7").Value = Cls.Worksheets("Recap").Range("G19").Value

End With

With ThisWorkbook.Worksheets("EQUIPE 3")

.Range("C4").Value = Cls.Worksheets("Recap").Range("H18").Value

.Range("C6").Value = Cls.Worksheets("Recap").Range("I18").Value

.Range("C5").Value = Cls.Worksheets("Recap").Range("H19").Value

.Range("C7").Value = Cls.Worksheets("Recap").Range("I19").Value

End With

Cls.Close True

End Sub

Ajout de contrainte, Quand on est Lundi matin je dois récupéré les données du fichier du vendredi donc il faudrait une boucle surment pour que

01-Lundi

02-Mardi

05-Vendredi

quand je suis 05-Vendredi je revienne a Lundi.

Je trouve pas

crdlt

c'est bon j'ai trouvé ma la réponse le chemin n'étais pas correct ! merci de ton aide !

Bonjour,

Et oui, ton chemin n'était pas correct, il manquait un & :

Chemin = "H:\LOULOU\LOULOU_Production_HAPP\préparations tableaux de banane\Tableaux de banane\" & Dos & "\" & SousDos & "\"

Pour ça, tu as trouvé ou pas ?

Ajout de contrainte, Quand on est Lundi matin je dois récupéré les données du fichier du vendredi donc il faudrait une boucle surment pour que

01-Lundi

02-Mardi

05-Vendredi

quand je suis 05-Vendredi je revienne a Lundi.

non enfaite j'ai une équipe de nuit et deux équipe de jour donc chez nous une journée c'est de 5h du matin a 5h du matin donc pour mon équipe de nuit il me faut récupéré les résultat de la veille et non du jour meme comme mes deux autres équipes

et aujourd'hui j'ai une erreur 1004 la méthode "open" de l'objet work book a échoué

Set Cls = Workbooks.Open(Chemin & Fichier)

sur cette ligne ...

Bonjour,

Set Cls = Workbooks.Open(Chemin & Fichier)

Le chemin ou le nom du fichier (ou les deux) est faux, contrôle avec un Debug.Print ou un MsgBox pour voir ce que contiennent les variables !

c'est bon cest le fichié lui même qui planté sur un autre pc ,

pour en revenir su le dernier problème en faite l'équipe 3 est de nuit et chez nous la journée c'est de 5H a 5H

donc pour l'équipe 3 c'est les résultat de la veille quil me faut en sachant que ma boucle s'effectue du lundi au vendredi donc quand on est lundi l'équipe 3 doit prendre les résultat du vendredi

Bonjour,

Il suffit de tester le jour retourné par la fonction "" et le retrancher 1 ou 3 à la date selon le cas :

Sub Test()

    Dim LaDate As Date
    Dim L As Date
    Dim Chemin As String
    Dim Dos As String
    Dim SousDos As String
    Dim Fichier As String

    LaDate = Date 'date du jour

    'si on est lundi, défini le vendredi sinon, la veuille
    LaDate = IIf(WeekdayName(Weekday(LaDate, 2), , 2) = "lundi", LaDate - 3, LaDate - 1)

    Dos = Year(LaDate) & "." & Format(Month(LaDate), "00")

    L = DateSerial(Year(LaDate - Weekday(LaDate - 1) + 4), 1, 1)
    SousDos = Year(LaDate) & "-S" & Int((LaDate - L + Weekday(L) + 5) / 7)

    Fichier = Format(Weekday(LaDate, 2), "00") & "-" & WeekdayName(Weekday(LaDate, 2), , 2) & ".xlsm"
    Chemin = Dos & "\" & SousDos & "\" & Fichier

    MsgBox Chemin

End Sub

Pour tester, comme aujourd'hui nous sommes vendredi, tu rajoutes 3 jour à la date :

LaDate = Date + 3 'date du jour

de façon à être lundi, le chemin aura dans son nom le mot "vendredi" sinon, le nom du jour de la veuille (pour aujourd'hui, "jeudi") !

A adapter.

Tes un chef niquel

Rechercher des sujets similaires à "mettre jour valeurs via fichier modifie hebdo"