Vbscript

jacstep Messages postés 5 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 12 décembre 2007 - 12 déc. 2007 à 16:59
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 16 déc. 2007 à 10:38
Bonjour à tout le monde,


Comme toujours,  je suis un peu dans le brouillard et je fais appel à vous tous...... Voici donc mon petit problème (pour vous) mais pour moi c'est peu plus compliquer dû à ma situation de néophyte en vbscript.


Ce que j'essai de faire, c'est permet l'ouverture d'un classeur excel de façon manuel à un utilisateur durant l'exécution de mon script... Mais je veux que mon script fasse une pause, le temps que la fenêtre excel s'ouverte.... Première question est-ce que je dois faire une condition style IF THEN ELSE ou si je devais faire un looping...Deuxième question pouvez-vous m'écrire un exemple concret de votre proposition :


Voici le bout de script dans lequel je dois inclure cette pause :


Dim objShell
Dim xlapp, classeur, feuille
Dim Message, Title, Default, MyValue, Response


Set objSHELL = CreateObject("Wscript.Shell")
Set objShell = WScript.CreateObject("WScript.Shell")
Set xlapp = CreateObject("Excel.Application")


objShell.Run("[file://\\S31BX291\TI$\BureauAide\Procédures\ \\S31BX291\TI$\BureauAide\Procédures\]")


'C'est ici que l'utilisateur ouvre un classeur excel dans Procédures, durant l'ouverture d'excel je voudrais que mon script fasse un arrêt, style classeur n'est pas ouvert False refait la boucle , classeur ouvert true poursuis le script


xlapp = excel
Function excel()
       if (xlapp) > 1 then
         excel() = false
   Else 
         excel() = True
   End if
End function

' Où une fonction un peu comme ça

Function IsWindowEnabled lib "user32" (ByVal hwnd As Long) As Long
Retour = Shell("excel.exe",1)
Do While IsWindowEnabled(Retour)=0
Loop

' mais une ou l'autre ca ne fonctionne pas


objShell.AppActivate ("BMC Remedy User - Service Desk Navigator (Recherche)")


wscript.sleep 1000


objShell.sendkeys "^{i}"


wscript.sleep 1000


wscript.sleep 1000


objshell.sendkeys "{TAB 2}"


wscript.sleep 1000


objshell.sendkeys "{RIGHT}"


wscript.sleep 1000

Merci beaucoup de votre indulgence envers un débutant en VBScript

1 réponse

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
16 déc. 2007 à 10:38
 Bonjour,

Il serait peut-être plus judicieux d'utiliser l'objet CommonDialog.
Exemple:

Option Explicit
Dim objDialog, objExcel, intResult

Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "Select Excel File|*.xls"
objDialog.FilterIndex = 1
objDialog.InitialDir = "[file://%5c%5cs31bx291%5cti$%5cbureauaide%5cproc%c3%a9dures%5c/ \\S31BX291\TI$\BureauAide\Procédures\]"
intResult = objDialog.ShowOpen

If intResult = 0 Then WScript.Quit

Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open objDialog.FileName  
objExcel.Visible = True
objExcel.DisplayAlerts = False

MsgBox "Fichier ouvert",,objDialog.FileName

objExcel.Quit
Set objExcel = Nothing
Set objDialog = Nothing

jean-marc
0
Rejoignez-nous