Appliquer une macro (enregistreur) à des fichiers portant différents noms

Bonjour,

Je sollicite votre aide car je suis un peu bloqué. J'ai une macro qui applique de la mise en page et des calculs à des fichiers .csv que je reçois (un chaque jour).

Mon but est depuis cette macro de pouvoir, après avoir ouvert le nouveau .csv du jour, lui appliquer cette macro.

Dans ma macro j'ai des lignes propres au fichier originel ex :

Windows("Cortal_very_passive_20230127.csv").Activate

Comment pourrais-je faire pour rendre ma macro applicable à tous fichiers après que ces derniers aient été ouverts.

Je vous remercie.

Sub MacroV3()
'
' MacroV3 Macro
'
' Touche de raccourci du clavier: Ctrl+p
'
    Windows("Cortal_very_passive_20230127.csv").Activate
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1)), _
        TrailingMinusNumbers:=True
    ActiveWindow.ScrollColumn = 2
    Range("S1").Select
    ActiveCell.FormulaR1C1 = "Penny Stock"
    Range("S2").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-4]<1,""OUI"",""NON"")"
    Range("S2").Select
    Selection.AutoFill Destination:=Range("S2:S183")
    Range("S2:S183").Select
    Range("T1").Select
    ActiveCell.FormulaR1C1 = "Calcul Déviation"
    Range("T2").Select
    ActiveCell.FormulaR1C1 = "=ABS((RC[-10]/RC[-5])-1)"
    Range("T2").Select
    Selection.Style = "Percent"
    Selection.AutoFill Destination:=Range("T2:T183")
    Range("T2:T183").Select
    Range("U1").Select
    ActiveCell.FormulaR1C1 = "A purger"
    Range("U2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-2]=""NON"",IF(RC[-1]>70%,""Purge"",""Keep""),IF(RC[-11]<(RC[-6]+1),""Keep"",""Purge""))"
    Range("U2").Select
    Selection.AutoFill Destination:=Range("U2:U183")
    Range("U2:U183").Select
    ActiveWindow.SmallScroll Down:=-21
    Range("V1").Select
    ActiveCell.FormulaR1C1 = "EDA/DMA"
    Range("V2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(OR(RC[-17]=""11FORN"",RC[-17]=""11CORT""),""DMA"",""EDA"")"
    Range("V2").Select
    Selection.AutoFill Destination:=Range("V2:V183")
    Range("V2:V183").Select
    Range("W1").Select
    ActiveCell.FormulaR1C1 = "IF Client"
    Range("W2").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-17]=9,""BDDF"",""FORTIS"")"
    Range("W2").Select
    Selection.AutoFill Destination:=Range("W2:W183")
    Range("W2:W183").Select
    Range("Y22").Select
    Columns("L:L").Select
    Selection.TextToColumns Destination:=Range("L1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar:= _
        ":", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Range("L1").Select
    ActiveCell.FormulaR1C1 = "Code MIC"
    Range("M1").Select
    ActiveCell.FormulaR1C1 = "Mnémonique"
    Columns("P:P").Select
    Selection.NumberFormat = "@"
    Selection.TextToColumns Destination:=Range("P1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar:= _
        ":", FieldInfo:=Array(1, 2), TrailingMinusNumbers:=True
    Columns("K:K").Select
    Selection.NumberFormat = "#,##0.00"
    Columns("U:U").Select
    ActiveWorkbook.Worksheets("Cortal_very_passive_20230127").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Cortal_very_passive_20230127").Sort.SortFields.Add2 _
        Key:=Range("U1:U183"), SortOn:=xlSortOnValues, Order:=xlDescending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Cortal_very_passive_20230127").Sort
        .SetRange Range("A2:W183")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.FormatConditions.Add Type:=xlTextString, String:="Purge", _
        TextOperator:=xlContains
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Selection.FormatConditions.Add Type:=xlTextString, String:="Keep", _
        TextOperator:=xlContains
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

    Windows("Cortal_very_passive_20230127.xlsx").Activate

End Sub

P.S : (macro en lien)

Bonjour Question-Boy,

Si le schéma général des fichiers CSV est le même que celui indiqué.

Alors il suffit de mettre en début de macro ceci.

Sub MacroV3()
'
' MacroV3 Macro
'
' Touche de raccourci du clavier: Ctrl+p
'
Fich = InputBox("Inscrire le nom du fichier sans l'extension", "ATTENTION")
If Fich = "" Then MsgBox "Fichier non renseigné": Exit Sub Else Fich = Fich & ".csv"
    Windows(Fich).Activate

Attention, le nom de la feuille du fichier Excel doit être aussi renommé, si différente. Par le même procédé, avec l'emploi d'un inputBox et d'une variable, par exemple appelé Onglet voire Sht.

Onglet = InputBox("Inscrire le nom de la feuille","Ensuite") 
ActiveWorkbook.Worksheets(Onglet)

De même si le fichier Excel ne porte pas le même nom.

Rechercher des sujets similaires à "appliquer macro enregistreur fichiers portant differents noms"