Fermer un fichier dont le nom varie

Bonjour à tous,

Je construis une macro qui ouvre un classeur avec un nom qui varie en fonction des données d'une cellule, copie/colle des infos dans le classeur de la macro, un peu de mise en page et qui doit fermer le fichier.

Avec l'aide de l'enregistreur, voici mon code :

Sub automatisationMAJ()

' SA38

' Ouverture de l'extract SA38 du jour

   Dim MonApplication As Object
   Dim MonFichier As String
   Set MonApplication = CreateObject("Shell.Application")

   MonFichier = range("D1") & ".xlsx"

   Workbooks.Open Filename:="\\chemin\chemin\" & MonFichier

   Set MonApplication = Nothing

  ' Copier/coller les donner de l'extraction SA38 du jour

       ' Selectionner les colonnes A à AH de l'onglet SA38 et les supprimer

    Windows("Dashboard_V2.xlsm").Activate
    Sheets("SA38").Select
    range("A:AH").Select
    range("A:AH").Delete

      ' Aller copier/coller les valeurs de l'extract sur l'onglet SA38 du DB

    [Surligner]'Windows("SA38_1311.xlsx").Activate
    [/Surligner]
    Windows(MonFichier & ".xlsx").Activate
    Sheets("Feuil1").Select
    range("A2").Select
    Selection.CurrentRegion.Select
    Selection.Copy

    Windows("Dashboard_V2.xlsm").Activate
    Sheets("SA38").Select
    range("Tableau4[[#Headers],[Selection.CurrentRegion.Select]]").Select
    ActiveSheet.Paste

    range("B:B,H:H").Select
    range("Tableau4[[#Headers],[Dél Exp]]").Activate
    Selection.NumberFormat = "m/d/yyyy"

        ' Tri par ref du plus gd au plus petit et par Del exp du plus ancien au plus récent

    ActiveWorkbook.Worksheets("SA38").ListObjects("Tableau4").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("SA38").ListObjects("Tableau4").Sort.SortFields.Add _
        Key:=range("Tableau4[Ref SAP]"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("SA38").ListObjects("Tableau4").Sort.SortFields.Add _
        Key:=range("Tableau4[Dél Exp]"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("SA38").ListObjects("Tableau4").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    ' Copier/coller les formules en orange + étendre la sélection jusqu'en bas

    Sheets("Procédure").Select
    range("O2:U2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("SA38").Select

    range("AI2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.AutoFill Destination:=range( _
        "Tableau4[[Stock + WIP - Expé]:[En stock]]")
    range("Tableau4[[Stock + WIP - Expé]:[En stock]]").Select

    'Copier/coller ses cellules pour ne garder que les valeurs et non les formules

    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

   ' MAJ des formules de AP à AV
   range("AP2:AV2").Select
    Selection.AutoFill Destination:=range( _
        "Tableau4[[Commande&poste&éché]:[Color]]")
    range("Tableau4[[Commande&poste&éché]:[Color]]").Select

    ' Fermer le fichier de l'extraction SA38

   [Surligner]Windows("SA38_1311.xlsx").Activate
    Windows("SA38_1311.xlsx").Close[/Surligner]

End Sub

Initialement ça a fonctionné (code en commentaire, gras, italique, souligné) mais je me suis rendu compte que la macro n'utilisait plus la variable "MonFichier" pour l'activer puis pour le fermer ensuite. donc logiquement quand les jours vont passé et que mon fichier d'extraction deviendra par exemple SA38_2212, la macro ouvrira le fichier mais ne pourra par effectuer le reste des actions.

Ma question :

Comment faire pour que le nom du fichier reste variable et que la macro puisse éxecuter les différentes actions ?

Merci,

PS : comme vous le verrez dans la macro j'ai testé

Windows(MonFichier & ".xlsx").Activate

à la place de

Windows("SA38_1311.xlsx").Activate

Mais ça n'a pas marché.

Bonjour,

essai avec,

WorkBooks(MonFichier & ".xlsx").Activate

Hello !

Bien vu ça fonctionne !

Merci

Rechercher des sujets similaires à "fermer fichier nom varie"