Appel d'Une macro d'un deuxième fichier renommé

Bonjour,

J'ai quelques difficultés avec une ligne de codes ou deux

J'ai un premier fichier dont je copie les données dans un 2e... jusque là, tout va bien.

Je doit être enregistré sous ce 2e fichier avec un nom qui est constitué du contenu de cellules de ce dernier mais que je dois effacer avant de l'enregistrer et d'ensuite rouler la macro. … jusque là tout va bien

Il est bon de noter que ce 2e fichier provient d'un fournisseur et que je n'ai pas accès au VBA.

8import-export.xlsb (57.71 Ko)

Je ne sais donc pas comment ramener mon fichier renommé dans

Application.Run "mon fichier renommé.xlsx!Generer"

ou

Classeur = Mon fichier renommé.xlsx

Application.Run Classeur & "!Generer"

1017-09-2020.zip (314.25 Ko)

Si quelqu'un pouvait me pister, ce serait grandement apprécié

MErci et bonne journée.

Rebonjour,

Dans le fichier 17-09-2020.xlsb, module1, vous allez voir toutes les tentatives que j'ai faites… mes connaisances s'arrêtent là..:)

Bonjour,

Un essai > avec un coup de balai ...

Sub Prime1()
Dim Sh As Worksheet
Dim DerLig As Long
Dim Ligbas As Long
Dim FicGen As String
Dim Chemin As String

    Application.ScreenUpdating = False
    Chemin = "R:\DRFL\Budget\CISSS\Commun\DOSSIER SP\PAIE\TEST Macro PRIME 100$\"

    Sheets("77").Activate
    With Sheets("77")
        On Error Resume Next
        .ShowAllData
        DerLig = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("G6:J" & DerLig).AutoFilter
        .Range("$G$6:J" & DerLig).AutoFilter Field:=3, Criteria1:="<>"

        .Range("$G$6:J" & DerLig).AutoFilter Field:=4, Criteria1:="<>0", Operator:=xlAnd
        .Range("$G$6:J" & DerLig).Copy

        Workbooks.Open Filename:=Chemin & "\import-export.xlsb"

        With Sheets("Formulaire")
            Ligbas = .Range("A" & Rows.Count).End(xlUp).Row + 1
            DerLig = .Range("A" & Rows.Count).End(xlUp).Row
            .Cells(Ligbas, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                    SkipBlanks:=False, Transpose:=False
            DerLig = .Range("A" & Rows.Count).End(xlUp).Row

            ' changer la période complémentaire
            .Range("R8").FormulaR1C1 = "11"
            .Range("R8").Copy
            .Range("R9:R" & DerLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                           :=False, Transpose:=False
            ActiveWorkbook.SaveAs Filename:=Chemin & [A8] & " - " & [B8] & ".xlsb" _
                                            , FileFormat:=xlExcel12, CreateBackup:=False

            FicGen = Chemin & [A8] & " - " & [B8] & ".xlsb"

            .Rows("8:8").Delete Shift:=xlUp
            ActiveWorkbook.Save
        End With

        Application.Run "'" & CStr(FicGen) & "'!Generer"
        ActiveWorkbook.Close
    End With

    Windows("17-09-2020.xlsb").Activate

    'Next Sh
    'Call Prime2
End Sub

ric

Bon matin ric,

ça fonctionne parfaitement avec le fichier envoyé. Milles merci.

Mon erreur c'est que pour minimiser l'espace, j'ai enlevé les autres onglets.

Il y a donc plusieurs onglets à traiter, d'où le "Next Sh" :

817-09-2020.zip (410.23 Ko)

dépassé le premier, ça ne fonctionne plus.

est-ce que tu pourrais jeter un œil si je t'envoi un fichier avec au moins 3 onglets… il peut y en avoir une 50taine :)

Bonjour,

Cette seule macro effectue le traitement de toutes les feuilles du classeur ...

J'ai aussi désactivé les avertissements du genre " Le fichier a été modifié, voulez-vous l'enregistrer ? " ...

Sub Prime1()
Dim Sh As Worksheet
Dim DerLig As Long
Dim Ligbas As Long
Dim FicGen As String
Dim Chemin As String

    Application.ScreenUpdating = False
    Chemin = "R:\DRFL\Budget\CISSS\Commun\DOSSIER SP\PAIE\TEST Macro PRIME 100$\"

    For Each Sh In ThisWorkbook.Worksheets

    Sh.Activate
    With Sh
        On Error Resume Next
        .ShowAllData
        DerLig = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("G6:J" & DerLig).AutoFilter
        .Range("$G$6:J" & DerLig).AutoFilter Field:=3, Criteria1:="<>"

        .Range("$G$6:J" & DerLig).AutoFilter Field:=4, Criteria1:="<>0", Operator:=xlAnd
        .Range("$G$6:J" & DerLig).Copy

        Workbooks.Open Filename:=Chemin & "\import-export.xlsb"

        With Sheets("Formulaire")
            Ligbas = .Range("A" & Rows.Count).End(xlUp).Row + 1
            DerLig = .Range("A" & Rows.Count).End(xlUp).Row
            .Cells(Ligbas, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                    SkipBlanks:=False, Transpose:=False
            DerLig = .Range("A" & Rows.Count).End(xlUp).Row

            ' changer la période complémentaire
            .Range("R8").FormulaR1C1 = "11"
            .Range("R8").Copy
            .Range("R9:R" & DerLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                           :=False, Transpose:=False
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs Filename:=Chemin & [A8] & " - " & [B8] & ".xlsb" _
                                            , FileFormat:=xlExcel12, CreateBackup:=False
            Application.DisplayAlerts = True

            FicGen = Chemin & [A8] & " - " & [B8] & ".xlsb"

            .Rows("8:8").Delete Shift:=xlUp
            Application.DisplayAlerts = False
            ActiveWorkbook.Save
            Application.DisplayAlerts = True
        End With

        Application.Run "'" & CStr(FicGen) & "'!Generer"
        Application.DisplayAlerts = False
        ActiveWorkbook.Close
        Application.DisplayAlerts = True
    End With

    Windows("17-09-2020.xlsb").Activate

    Next Sh
    MsgBox " Le traitement de toutes les feuilles est terminé. "
End Sub

ric

Merci,

De toute beauté,

J'analyse l'utilisation du CStr et surtout des ' et des ''.

Encore merci, c'est exactement le résultat pour lequel j'ai trop essayé de trucs,

Bonjour,

CStr(FicGen) > CStr force le contenu de la variable FicGen à être reconnu comme du texte (String) même si ce sont des chiffres ...

ric

MErci

Rechercher des sujets similaires à "appel macro deuxieme fichier renomme"