Si vous êtes plus à l'aise pour travailler dans Excel/VBA, utilisez l'événement d'ouverture et testez l'environnement : ayez un fichier de signal, une entrée de registre ou une variable d'environnement qui contrôle ce que fait l'événement d'ouverture.
Vous pouvez créer le fichier/réglage à l'extérieur et tester à l'intérieur (utilisez GetEnviromentVariable pour les env-vars) et tester facilement. J'ai écrit du VBScript mais les similitudes avec le VBA me causent plus d'angoisse que de facilité
[plus]
Si je comprends bien le problème, vous voulez utiliser une feuille de calcul normalement la plupart du temps, mais la faire fonctionner par lot et faire quelque chose d'extra/différent. Vous pouvez ouvrir la feuille à partir de la ligne de commande excel.exe, mais vous ne pouvez pas contrôler ce qu'elle fait si elle ne sait pas où elle se trouve. L'utilisation d'une variable d'environnement est relativement simple et permet de tester facilement la feuille de calcul.
Pour clarifier, utilisez la fonction ci-dessous pour examiner l'environnement. Dans un module déclarer :
Private Declare Function GetEnvVar Lib "kernel32" Alias "GetEnvironmentVariableA" _
(ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Function GetEnvironmentVariable(var As String) As String
Dim numChars As Long
GetEnvironmentVariable = String(255, " ")
numChars = GetEnvVar(var, GetEnvironmentVariable, 255)
End Function
Dans l'événement d'ouverture du classeur (comme les autres) :
Private Sub Workbook_Open()
If GetEnvironmentVariable("InBatch") = "TRUE" Then
Debug.Print "Batch"
Else
Debug.Print "Normal"
End If
End Sub
Ajoutez le code actif le cas échéant. Dans le fichier batch, utilisez
set InBatch=TRUE
1 votes
Est-il possible d'utiliser vbscript/jscript avec l'hôte de script de Windows ?