Exécuter le code VBA à partir d'un triggersur externe?

Est-il possible de créer une macro à exécuter sur un classur, déclenché à partir d'un autre classur, lorsque le premier document est en cours d'logging?

Quelques antécédents: je convertis un document PDF – qui contient datatables dont j'ai besoin – à un document Excel. La conversion ne peut être effectuée qu'à un document .xlxs. Je pourrais simplement "save comme" ce document sur un document macro-activé après cela, mais tout le process prendrait plus de time et l'objective entier est de réduire considérablement le time.

J'ai une macro qui peut extraire datatables du file .xlsx vers un file .xlsm, afin que je puisse manipuler datatables dont j'ai besoin à partir de là. Le faire automatiquement lorsque je met à jour le file .xlxs est le problème.

Ci-dessous, le code que j'ai actuellement fait pour importer datatables du file .xlsx dans le document Excel activé par macro. Est-il possible d'extraire automatiquement ces données lorsque je fais des modifications et que je sauvegarde le file .xlsx sans jamais avoir à ouvrir?

Sub Import_Test() Dim Target_Workbook As Workbook Dim Source_Workbook As Workbook Dim Target_Path As Ssortingng Target_Path = "H:\Test.xlsx" Set Target_Workbook = Workbooks.Open("H:\Test.xlsx") Set Source_Workbook = ThisWorkbook Target_Data = Target_Workbook.Sheets(1).Cells(35, 1) Source_Workbook.Sheets(1).Cells(2, 1) = Target_Data Source_data = Source_Workbook.Sheets(1).Cells(2, 1) Target_Workbook.Sheets(1).Cells(35, 1) = Source_data Source_Workbook.Save Target_Workbook.Close False End Sub 

Comme je le vois, vous avez 2 options: 1) Créez un classur qui vérifie constamment la dernière date modifiée de votre classur '.xlsx' et dès qu'il change, triggersz une macro … la baisse à cela est-il que vous devez avoir Il est ouvert pour fonctionner. 2) Ce qui, je le crois, est la méthode préférée, consiste à commuter le file .xlsx dans un file .xlsm ou .xlsb, ce qui, comme d'autres l'ont souligné, est vraiment le seul moyen d'get la fonctionnalité que vous searchz et de changer la création PDF pour les fonctions de création de PDF embeddedes à partir de l'Adobe que vous utilisez actuellement …

Dans l'un ou l'autre cas, vous devez compromettre l'une de vos exigences, l'option 1 nécessite l'ouverture d'un classur, et l'option 2 vous oblige à changer la méthode PDF. Je pense que l'option 2 serait de loin la route préférée, pourvu qu'il n'y ait pas une raison pour laquelle le PDF devait absolument être créé avec Adobe PDF Maker …

Voici le code du créateur PDF embedded si vous pouvez l'utiliser: "Thisworkbook.ExportAsFixedFormat Type: = xlTypePDF, Filename: =" filename ", Qualité: = xlQualityStandard, IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = Vrai "

J'espère que ça aide, TheSilkCode