Bonjour,
J'ai 2 scripts: l'un considéré comme librairie (common.vbs) et l'autre comme script principal.
Dans le script principal j'utilise une variable d'environnement que j'ai définis dans SYSTEM:GL_Software_Src.
Dans le script principal, j'ai ce fragment de script qui installe Ms Office 2007 en silence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Sub Install_MsOffice2007
	Office2007Path=GetVarEnvValue("GL_Software_Src" , "SYSTEM") & "\Office 2007" 
	ExecuteMsDosCmd(Office2007Path & "\Setup.exe /config  " & Office2007Path & "\PROPLUS.WW\config.xml")
End Sub
Dans common.vbs, la procédure ExecuteMsDosCmd qui permet d'exécuter une commande Ms Dos est définie de la sorte:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public Sub ExecuteMsDosCmd(Cde) ' As String)
	Dim objShell,objScriptExec
	Set objShell = CreateObject("WScript.Shell" )
	Set objScriptExec = objShell.Exec("cmd /C " & Cde)'& cde,0,true)
End Sub
Dans le script principal, j'utilise la procédure ExecuteFileContents pour inclure common.vbs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub ExecuteFileContents(strFile)
	ForReading=1
	Set WshShell = CreateObject("WScript.Shell" )
	strFile = WshShell.ExpandEnvironmentStrings(strFile)
	Set objFs = CreateObject("Scripting.FileSystemObject") 
	strFile = objFs.GetAbsolutePathName(strFile)
	'Wscript.Echo StrFile
	StrFile="z:\Misc\Common.vbs"
	Set objFile = objFs.OpenTextFile(strFile, ForReading)
	strCode = objFile.ReadAll
	objFile.Close
	ExecuteGlobal strCode
End Sub
Le problème:
Quand j'exécute Sub Install_MsOffice2007, il me génère une erreur: "Type incompatible", mais quand je copie le code de la procédure ExecuteMsDosCmd dans le script principal (déclaration) et que j'exécute Sub Install_MsOffice2007, il n'y a aucune erreur signalée.

A votre avis cette erreur est due à quoi?

Merci pour votre aide.