Bonjour à tous,
J'ai 2 classeurs ouverts.
Dans le classeur 2, une procédure agissant sur la feuille active est exécutée par un bouton.
Je voudrais que cette procédure puisse être exécutée à partir du classeur 1 sur une feuille de ce classeur passée en argument.
Si elle est exécutée à partir du bouton du classeur 2, l'argument serait ThisWorkBook.ActiveSheet.
Si la procédure est déclarée de la manière suivante.L'appel sans argument fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Sub AddNoPol()Par contre, si la procédure est déclarée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub Test1() Dim Action As String Action = "'" & ThisWorkbook.FullName & "'!AddNoPol" ' Fonctionne Application.Run (Action)tous les exemples d'appel trouvés sur la toile renvoient un message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Sub AddNoPol(Feuil As Worksheet)Cà fait 2 jours que je m'échine sur ce problème avec, me semble-t-il, toutes les combinaisons possibles, apostrophes ou guillemets, virgule ou non entre la procédure et les arguments, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Action = ThisWorkbook.FullName & ".Module1!AddNoPol " & "(" & """ThisWorkbook.ActiveSheet""" & ")" Action = """'" & ThisWorkbook.FullName & "'.Module1!AddNoPol,""ThisWorkbook.ActiveSheet""" Action = "'" & ThisWorkbook.FullName & "'!AddNoPol " & "'ThisWorkbook.Sheet(1)'" Action = "'" & ThisWorkbook.FullName & "'!""AddNoPol"", ThisWorkbook.Sheet(1)" Application.Run (Action)
Alors, si quelqu'un avait la solution, cela me ferait grand plaisir.
Partager