Appliquer un code VBA contenu dans un fichier X pour l'appliquer sur un Y

Bonjour à tous,

À votre avis, comment faut-il faire pour qu'une macro A contenue dans un fichier X puisse s'appliquer sur un fichier Y simplement en renseignant le nom du fichier Y via une Input Box, s'il vous plaît ?

Ainsi, le résultat est contenu dans le fichier Y.

N'hésitez pas si vous avez des questions.

Bonne journée,

En fait mon fichier Y est une extraction d'une base de données, Y est évolutif en terme de nom également, il peut aussi s'appeler Y' entre 2 extractions.

Est-il possible d'avoir une macro "dynamique" qui viendrait s'appliquer dans un fichier comme celui décrit ci-dessus ?

Salut,

Et que doit faire la macro dans le fichier Y ?

Ici j'ouvre un fichier Y qui est dans le même répertoire que le classeur qui lance la macro, et je lis la cellule A1

Public Sub MacroY()
    Dim localWorkbook As Workbook
    Dim WorkbookName As String
    WorkbookName = Application.InputBox("Nom du classeur à traiter", "Execution macro", "MonClasseur.xlsx")
    If WorkbookName > vbNullString Then
        If Dir(ThisWorkbook.Path & "\" & WorkbookName) > vbNullString Then
            Set localWorkbook = Workbooks.Open(ThisWorkbook.Path & "\" & WorkbookName)
            If Not localWorkbook Is Nothing Then
                With localWorkbook
                    ' //Ici le code de la macro
                    MsgBox Worksheets("Feuil1").Range("A1").Value
                End With
            End If
        Else
            MsgBox "Pas de classeur de se nom trouvé !"
        End If
    End If
End Sub

Bonjour,

"

If Not localWorkbook Is Nothing Then

With localWorkbook

' //Ici le code de la macro

MsgBox Worksheets("Feuil1").Range("A1").Value

End With

End If

Else

MsgBox "Pas de classeur de se nom trouvé !"

"

Cette partie du code se traduit bien en :

1) Si le fichier à traiter n'est pas "nul", alors on fait : "//Ici le code de la macro" ?

2) Puis, une message box s'affiche en écrivant : La valeur de la première cellule de la première feuille qui cette feuille doit s'appeler "Feuil1" obligatoirement ?

3) Quel est le but de cette message box ?

4) Et la dernière ligne, affiche qu'il y a une incohérence entre la sélection des caractères dans l'input box par rapport au nom du fichier à traiter, c'est ça ?

5) Ce code est lié au chemin où le fichier Y est stocké et non au nom "Y" pour retrouver le fichier portant son nom ?

Bonne journée,

bonjour leo45000,Jean-Paul,

une manière primitive, avec ceci dans votre fichier et votre 2ième fichier ouvert avec le nom "Y....." qui contient une macro "MacroY"

Option Compare Text                          'première ligne du module !!!!!!

Sub Macro_X()
     For Each wb In Workbooks                'tous les fichiers excel ouverts
          If wb.Name <> ThisWorkbook.Name Then     'ce n'est pas ce fichier
               If wb.Name Like "Y*" Then   'le nom de l'autre fichier ressemble à....
                    Application.Run wb.Name & "!MacroY"     'exécutezcette macro
                    Exit For
               End If
          End If
     Next
End Sub
Rechercher des sujets similaires à "appliquer code vba contenu fichier"