XL 2019 Sujet complexe : Ouvrir des fichiers selon des conditions avec macro

Samulo

XLDnaute Nouveau
Bonjour,

Je cherche une macro qui va répondre à une problématique assez complexe selon les jours d'exécution de celle-ci.

Dans la feuille "BASE", les jours de la semaine sans les samedis et dimanches. Si en colonne C il y a "X" c'est que nous avons déjà ouvert le fichier et il ne faut pas le rouvrir.

Si on exécute un Lundi alors JOURSEM = 1
Je vérifie avec la macro que le fichier du jeudi à été ouvert si oui alors le vendredi si oui alors on ouvre celui du jour et on met une X en C face à la date.
Si le vendredi n'avait pas été ouvert alors on aurait ouvert le fichier du vendredi puis mit une X en colonne C face à la date et ensuite ouvert celui d'aujourd'hui et mit une X en colonne C face à la date.

1645541051352.png


Le noms des fichiers est variable : yyyymmdd_TDB.xlsx

1645541075187.png


Si on exécute un Mardi alors dans la même logique que le lundi on vérifie la date du lundi, celle du vendredi et du jour.
Pour un Mercredi on vérifie pour lundi, mardi et du jour.. etc.

J'espère avoir été clair...

Je reste à votre disposition.
 

Pièces jointes

  • TEST.xlsm
    14.7 KB · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour Samulo,

Vous ne dites pas ce que l'on fait une fois les fichiers ouverts mais bon voyez cette macro :
VB:
Sub Ouvrir()
Dim chemin$, i As Variant, lig&, fichier$, wb As Workbook
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
With Sheets("BASE") 'feuille à adapter
    i = Application.Match(CLng(Date), .[A:A], 0)
    If IsError(i) Then MsgBox "La date d'aujourd'hui n'est pas en colonne A !", 48: Exit Sub
    Application.ScreenUpdating = False
    For lig = i - 2 To i
        If lig > 0 Then
            If IsDate(.Cells(lig, 1)) And .Cells(lig, 2) = "" Then
                fichier = Format(.Cells(lig, 1), "yyyymmdd") & "_TDB.xlsx"
                If Dir(chemin & fichier) = "" Then
                    MsgBox "'" & chemin & fichier & "' introuvable !", 48
                Else
                    Set wb = Workbooks.Open(chemin & fichier) 'ouverture du fichier
                    .Cells(lig, 2) = "x" 'met un x en colonne B
                    '---suite du code---
                End If
            End If
        End If
    Next
End With
End Sub
A+
 

Pièces jointes

  • TEST(1).xlsm
    19.8 KB · Affichages: 4

Discussions similaires

Réponses
20
Affichages
498

Membres actuellement en ligne

Statistiques des forums

Discussions
314 499
Messages
2 110 249
Membres
110 711
dernier inscrit
chmessi