Utilisation de macros pour exécuter un script
Pour exécuter un script en utilisant une macro, créez la macro dans VBA (Visual Basic for Applications).
- Ouvrez le fichier de données associé au script à exécuter.
Important : veillez à utiliser un fichier prenant en charge les macros ou .xlsm.
- Appuyez sur Alt+F11.
- Dans l'éditeur VBA Editor, sous Objets Microsoft Excel, double-cliquez sur le feuille qui contient les données à exécuter.
- Copiez et collez le code en dessous dans la fenêtre.
- Remplacez le chemin de fichier de données, le chemin du fichier script, le nom de feuille et le nom de connexion automatique en dessous par les informations de vos fichiers et votre nom de connexion automatique.
- Cliquez sur Enregistrer et fermez l'éditeur VBA.
- Dans Excel, cliquez sur l'onglet Afficher puis sur Macros.
- Cliquez sur la macro à exécuter, puis sur Exécuter.
Remarque : vérifiez que le module complémentaire Excel n’est pas actif (que vous n’êtes pas connecté à
Macros Transaction
Exécuter un script publié
- Définir des objets Addin.
Dim StudioMacrosAddin, StudioMacros
- Obtenez un objet Addin depuis Excel.
Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule")
- Obtenez un objet COM depuis un objet Addin.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Sélectionnez le fichier publié à exécuter et définissez d'autres propriétés d'exécution (voir Propriétés d'un objet Transaction Addin).
Dim StudioMacros.PublishedFile = "MM02_MacroTest"
- Ouvrez le script publié.
StudioMacros.OpenPublishedScript
- Exécutez AddinObject pour exécuter le script.
StudioMacros.RunScript
Exécuter un script Transaction existant
- Définir des objets Addin.
Dim StudioMacrosAddin, StudioMacros
- Obtenez un objet Addin depuis Excel.
Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule")
- Obtenez un objet COM depuis un objet Addin.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Sélectionnez le script Transaction à exécuter et définissez d'autres propriétés d'exécution (voir Propriétés d'un objet Transaction Addin).
Dim strShuttleFile = "C:\Users\Normal_Tx_Macro.txr"
- Ouvrez le script à exécuter.
StudioMacros.OpenScript (strShuttleFile)
- Exécutez AddinObject pour exécuter le script.
StudioMacros.RunScript
Propriétés d'un objet Transaction Addin
Les paramètres d'exécution ou les options d'exécution avancées définies dans le script ne sont pas respectés pendant l'exécution de la macro. Vous devez les définir en utilisant les propriétés exposées pour l'objet Add-in.
Propriété/Fonction |
Valeur(s)/Paramètre |
Description |
PublishedFile |
Description d'un script publié |
Sélectionne le fichier publié à exécuter |
OpenPublishedScript |
S/O |
Ouvre le script publié |
OpenScript() |
Chemin du fichier script |
Ouvre le script à exécuter. |
StartRow |
Numéro de ligne |
Ligne Excel à partir de laquelle l'envoi des données doit commencer |
EndRow |
Numéro de ligne |
Dernière ligne Excel à partir de laquelle les données doivent être envoyées |
WriteHeader |
S/O |
Écrire les en-têtes pendant l'exécution |
LogColumn |
Colonne/Cellule |
Colonne ou cellule dans laquelle les journaux doivent être écrits |
SheetName |
Nom de la feuille |
Nom de la feuille à utiliser pour l'exécution |
AlfName |
Fichier de connexion automatique |
Nom de la connexion automatique à utiliser |
RunReason |
Chaîne de raison d'exécution |
Spécifier la raison de cette exécution |
RunSelectedRows |
S/O |
Vrai – Exécution uniquement des lignes sélectionnées dans Excel |
RunFilteredRows |
S/O |
Vrai – Exécution uniquement des lignes affichées dans Excel |
RunType |
0 – Exécuter la plage définie 1 – Exécuter et arrêter en cas d'erreurs 2 – Exécuter les cinq premières lignes 3 – Exécuter uniquement les lignes erronées 4 – Exécuter uniquement les lignes non traitées 5 – Déboguer la plage définie 6 – Déboguer uniquement la première ligne 7 – Valider la plage définie 8 – Valider les cinq premières lignes 9 – Valider uniquement les lignes erronées 10 – Valider uniquement les lignes non traitées |
Sélectionner le type d'exécution dans les valeurs possibles |
RunScript |
S/O |
Exécuter le script |
Exemple de code : Exécuter un script Transaction existant
Sub RunNormalTXRfile() '---------------------------------------------- ' Macro pour utiliser le complément WinshuttleStudioMacros avec le code '---------------------------------------------- ' ' RunPublishedfile Macro ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If StudioMacros.StartRow = 2 StudioMacros.EndRow = 0 ' Set True to write headers while Run StudioMacros.WriteHeader = True ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'StudioMacros.RunSelectedRows = True 'StudioMacros.RunFilteredRows = True ' RunSpecifiedRange = 0, ' RunAndStopOnErrors = 1, ' RunFirstFiveRows = 2, ' RunOnlyErrorRows = 3, ' RunOnlyUnProcessedRows = 4, ' DebugSpecifiedRange = 5, ' DebugFirstRowOnly = 6, ' ValidateSpecifiedRange = 7, ' ValidateFirstFiveRows = 8, ' ValidateOnlyErrorRows = 9, ' ValidateOnlyUnProcessedRows = 10, StudioMacros.RunType = 0 strShuttleFile = "C:\Users\ssingh\Documents\Winshuttle\Studio\Script\Normal_Tx_Macro.txr" ' Call the Run Function to open specified script StudioMacros.OpenScript (strShuttleFile) ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
|
Problèmes connus
- Les macros créées ans Transaction ou Query v10.x ne sont pas converties automatiquement dans le format Studio v11. Les macros dans le format Studio v11 ne sont pas compatibles avec v10.x. Pour pouvoir les exécuter, vous devez les convertir manuellement.
- Lorsque vous utilisez des macros, les compléments Winshuttle ne doivent pas être chargés (vous ne devez pas être connecté à Foundation). Les compléments Winshuttle peuvent être activés.
- La ligne de début est toujours la ligne 2 si vous ne définissez pas une ligne différente.
- Les options RunSelectedRows et RunFilteredRows s'excluent mutuellement. Le script utilisera la dernière définie.
- Les fichiers de données doivent utiliser le workflow de vérification des données à exécuter en utilisant les macros en mode Foundation.
- Enregistrer dans Foundation ne fonctionne pas lorsqu’une macro est utilisée pour exécuter le fichiers de données en mode Foundation.