Bonjour,

Apres de longues recherches sur notre ami Google, jai rien trouver a propos de mon probleme. Je fais donc appel a la population de ce forum pour m'aider, svp.

Situation: Je lance depuis un logiciel de gestion commercial un script (vbs) pour lancer des impressions, mon script simulant les touches du clavier pour selectionner les diverses options necessaires (imprimante etc). Mais a 2 reprises en debut de script, jai besoin de faire un clic a la souris pour cocher une option, le clavier me permettant pas d'y acceder (avec 'tab'). Jai donc choisi d'afficher un msgbox specifiant de cocher cette option, puis l'utilisateur fait 'ok' sur mon msgbox et le script reprend. J'utilise egalement un 3ieme msgbox bloquant dans le script (pour une autre raison bref...)

Probleme: A priori tout se passe bien comme je le veux sauf lors de l'apparition de la 3ieme Msgbox. Le bouton s'affiche bien demandant a l'utilisateur de faire 'ok' pour continuer le script. Mais dans ce cas, je n'ai plus la possibilité de cliquer dans mon logiciel, je n'arrive pas a remettre le focus sur cette appli en cliquant avec la souris. Je recupere la main sur mon appli seulement quand je clic sur 'ok' mais l'option que je voulais cocher n'est alors pas coché et le script continue son execution...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
SUB Imprim(NomModele,typedoc)
    Dim oSheel
    Dim monBouton
    Dim etatBouton
 
    Set oSheel = Wscript.CreateObject("Wscript.Shell")
 
if typedoc = 1 then
'impression des etiquettes
'bouton imprimer	
	oSheel.SendKeys("+{F5}")   
	Wscript.sleep(1000)
	oSheel.SendKeys(NomModele)
 
 
	etatBouton = 0
	' vbYesNo
	monBouton = msgbox("Appuyer sur ok quand le tri est selectionné",0,"En attente")
	while etatBouton = 0
		if monBouton = vbOk then 
			etatBouton = 1
		end if
		Wscript.sleep(100)
	Wend
 
 
	While oSheel.appActivate("Sage 100 Gestion commerciale pour SQL Server - gecotest.gcm") <> True
		WScript.Sleep 100
	Wend
 
	Wscript.sleep(300)
	oSheel.SendKeys("{ENTER}")
             ...
             ...
	oSheel.SendKeys("{ENTER}")
 
             etatBouton = 0
	monBouton = msgbox("Appuyer sur ok quand la premiere partie des impressions est terminée",0,"En attente")
 
	while etatBouton = 0
		if monBouton = vbOk then 
			etatBouton = 1
		end if
		Wscript.sleep(100)
	Wend
 
	Wscript.sleep(1000)
 
	While oSheel.appActivate("Sage 100 Gestion commerciale pour SQL Server - gecotest.gcm") <> True
 
		WScript.Sleep 100
	Wend
 
	else
		Wscript.sleep(300)
		'impression du bon de commande
		'bouton imprimer	
			oSheel.SendKeys("+{F5}")   
			Wscript.sleep(1000)
			oSheel.SendKeys(NomModele)
			Wscript.sleep(10000)
		'OK choix modele
 
 
		etatBouton = 0
		monBouton = msgbox("Appuyer sur ok quand le tri est selectionné",0,"En attente")
		while etatBouton = 0
			if monBouton = vbOk then 
				etatBouton = 1
			end if
 
			Wscript.sleep(100)
 
		Wend
 
		While oSheel.appActivate ("Sage 100 Gestion commerciale pour SQL Server - gecotest.gcm") <> True
			WScript.Sleep 100
		Wend
 
		Wscript.sleep(300)
		oSheel.SendKeys("{ENTER}")					...
                          ...
		oSheel.SendKeys("{ENTER}")
 
		etatBouton = 0
				Wscript.sleep(300)
	end if
 
 
Set oShell = Nothing
 
END SUB
 
	SW_SHOWNORMAL=1
 
 
'impression selon 1e modèle
	Call Imprim("N:\Imprimés de ...l.bgc",1)
	Wscript.sleep(300)
'impression selon 2er modèle
	Call Imprim("N:\Imprimés de......bgc",2)
Le probleme vient peut etre de la fonction appactivate que j'utilise mal, bref jai besoin d'aide car la je ne sais plus trop quoi faire...

Merci d'avance de vos reponses !