Urgent

Résolu
arch enemy123456 Messages postés 26 Date d'inscription jeudi 9 novembre 2006 Statut Membre Dernière intervention 8 mai 2007 - 9 nov. 2006 à 13:14
arch enemy123456 Messages postés 26 Date d'inscription jeudi 9 novembre 2006 Statut Membre Dernière intervention 8 mai 2007 - 15 nov. 2006 à 17:53
Bjr tt le monde svp j ai un souci là,
beh je travail sur VBA
je vé vs éxpliqué : 1 )j ai deux balance, je vx au début comaprer les 2 balances et j ai instaler un logiciel
                                qui pré occupé de ça c le " Diff Doc" alors dans ce logiciel je px choisi les 2 balnce 
                                mé il falé cliqué sur une boton play " R.C : F5" pour démarrer la comparaison .  
                                ok jusqu à la c bon

le souci : " moi je vx savoir si je px crée un batch ou un code VBA qui permet de lancer l application et executer la boton de comparaison ?!!!!"

idés moi svp c urgent et merci d avanace 

30 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 17:24
J'apporte quelque modif car t'es pas en .Net!
Donc les deux fonctions suivantes sont des API du système windows, si tu veux plus d'info sur les api il y a des tutos sur le site!


Public

Declare
Function SetForegroundWindow Lib"user32" ( ByVal hwnd AsInteger ) As Long









Private

Declare
Function FindWindow Lib"user32"Alias"FindWindowA" ( ByVal lpClassName AsString ,

ByVal lpWindowName AsString ) As


Integer





Dim
hwnd

As 
Long
recherche le handle de ton programme que tu as ouvert avec shell
hwnd = FindWindow(vbNullString,
"TitreDeLaFenetreDeTonProgramme"))

Met cette fenetre en premier plan

SetForegroundWindow(hwnd)

Simule l'appui sur la touche F5
sendkeys( "{F5}" )

 Drikce 06
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
10 nov. 2006 à 08:39
Re:
(si cela ne marchait pas c'est parce qu'il n'y avait pas d'espace entre As et String (probleme copier/coller))

 Dans la partie déclaration de ton userform:
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal
lpWindowName As String) As Long

Dansl'évènement click d'un boutton


Private Sub CommandButton1_Click()


Shell ("C:\TonProgramme.exe")


Dim hwnd As Long


hwnd = FindWindow(vbNullString, "TitreDeTonProgramme")


SetForegroundWindow (hwnd)


SendKeys ("{F5}")


End Sub

 Drikce 06
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
11 nov. 2006 à 03:46
Salut,

si je suis pas trop mauvais, j'ai lu que tu souhaitais créer un batch :

Sub Test()
        Dim ff As Integer
        
    ff =  FreeFile
    Open "C:\Chemin\Nom Fichier.bat" For Output As #ff
        Print #ff, "Ta ligne de commande"
    Close #ff
End Sub

~<small> Mortalino </small>~

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 13:18
Salut
tu peux lancer ton programme avec un shell.
après untilise les api pour rechercher le handle du programme par son nom, après tu cherche les handle enfants (boutton...) toujours via l'api et tu simule un click sur celui qui t'interresse!

 Drikce 06
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
9 nov. 2006 à 13:19
ui c possibl ^^ aveK la fonction cole (à traduire en vrai language pas en texto ;)

Chris...
Web : Firstruner
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 nov. 2006 à 13:20
---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
9 nov. 2006 à 13:21
Trop balèze Casy, je l'adopte ce Gif ^^

Chris...
Web : Firstruner
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 13:24
En .Net ça donne à peu près ça à toi de l'adapter!

Const
GW_HWNDFIRST = 0


Const
GW_HWNDLAST = 1


Const
GW_HWNDNEXT = 2


Const
GW_HWNDPREV = 3


Const
GW_CHILD = 5


Const
WM_LBUTTONDOWN = 513


Const
WM_LBUTTONUP = 514



Private



Declare



Function
SendMessage

Lib



"user32"



Alias



"SendMessageA"
(

ByVal
hwnd

As



Integer
, _


ByVal
wMsg

As



Integer
,

ByVal
wParam

As



Integer
,

ByVal
lParam

As



Object
)

As



Integer






Private



Declare



Function
GetWindowTextLength

Lib



"user32"



Alias



"GetWindowTextLengthA"
_(


ByVal
hwnd

As



Integer
)

As



Integer






Private



Declare



Function
GetWindowText

Lib



"user32"



Alias



"GetWindowTextA"
(

ByVal
hwnd

As



Integer
, _


ByVal
lpString

As



String
,

ByVal
cch

As



Integer
)

As



Integer 








Public



Declare



Function
SetForegroundWindow

Lib



"user32"
(

ByVal
hwnd

As



Integer
)

As



Integer






Declare



Function
GetActiveWindow

Lib



"user32"



Alias



"GetActiveWindow"
()

As



Integer






Private



Declare



Function
FindWindow

Lib



"user32"



Alias



"FindWindowA"
(

ByVal
lpClassName

As



String
, _


ByVal
lpWindowName

As



String
)

As



Integer



Dim
hwnd, hwnd1

As



Integer






Dim
NbChr

As



Integer

hwnd = Int(FindWindow(vbNullString,




"PDFCreator 0.9.0"
))SetForegroundWindow(hwnd)

hwnd1 = GetWindow(hwnd, GW_CHILD)


Do



While
hwnd <> 0


Dim
MyStr

As



String
=

""

NbChr = GetWindowTextLength(hwnd1)


MyStr = MyStr.PadLeft(NbChr)


GetWindowText(hwnd1, MyStr, NbChr + 1)







If
MyStr =

"Enregistrer"



Then

SetForegroundWindow(hwnd1)


SendMessage(hwnd1, WM_LBUTTONDOWN, 0, 0)


SendMessage(hwnd1, WM_LBUTTONUP, 0, 0)







Exit



Do






End



If

hwnd1 = GetNextWindow(hwnd1, GW_HWNDNEXT)







Loop




 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 13:25
D'accord avec chris et casy pour le language SMS !

 Drikce 06
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
9 nov. 2006 à 13:29
On dit cela car c'est déjà assez compliquer de comprendre les problèmes des autres alors si en plus on doit décrypter le language on y passe la nuit, fait juste quelques efforts s'il te plait

pour info : http://www.vbfrance.com/reglement.aspx




Chris...


 Web :
Firstruner
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 13:36
Casy ralenti un peu le défilement de ton gif ça va trop vite!
Mais une vitesse à peu près comme celui de Kenji avec le règlement!

 Drikce 06
0
amigainc Messages postés 20 Date d'inscription lundi 5 janvier 2004 Statut Membre Dernière intervention 7 août 2009 1
9 nov. 2006 à 13:54
Le pire c'est qu'à coup sûr, ce n'est même pas fait exprès...
Il y a tellement de gens qui ne savent pas "écrire" (dans tous les sens du terme), et à défaut de prendre cela comme une marque de provocation, prendre cela comme un fléau, à une échelle non mesurable !
A qui la faute ? On peut rejeter les torts sur l'éducation, les parents, le système, mais on ne fera pas avancer le schmilblick.
Il est clair que l'écrit est un des moyens de communication les plus déployés sur Internet, et que ce forum n'est pas fait pour polémiquer sur ce genre de problème. Autant je suis un défenseur de la langue française, autant je suis conscient de la lacune qui pèse sur les épaules d'une partie trop importante de la population.
Je m'arrête là.
----------------------
<<< AmigaINC >>>
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 13:59
AmigaINC>>>>Point n°3 du règlement CS:
On utilise un langage correct : pas de langage SMS, et on fait attention à l'orthographe.

http://www.vbfrance.com/reglement.aspx

 Drikce 06
0
arch enemy123456 Messages postés 26 Date d'inscription jeudi 9 novembre 2006 Statut Membre Dernière intervention 8 mai 2007
9 nov. 2006 à 16:08
merci bcp bcp bcp vs t trooooooo gentilles merci
mé svp je vé vous dire un truc
parceque c la 1er fois que je vé travailer avec VBA je vé vous données les données et svp quelq'un me écrir le code et emrci d avanace.
pour logiciel que je ve le lancer : "C:\Program Files\Softinterface, Inc\DiffDoc\DiffDoc.exe"
j ai déja passer cette étape par (shell "C:\Program Files\Softinterface, Inc\DiffDoc\DiffDoc.exe")
mé mon problèm c de executer la bouton play dans la barre d outils de ce logiciel et le raccourci clavier
de cet bouton et " F5"

j ai instaler un logiciel qui registre tt les frapes clavier et il ma donnée ce script :

Shell(Chr$(34)+"C:\Program Files\Softinterface, Inc\DiffDoc\DiffDoc.exe"+Chr$(34),1)



UseWindow("DIFFDOC.EXE|RichTextWndClass|(1) Copie de balance_pcec_092006_v1.xls vs. Copie de balance_pcec_092006_v1.xls|9",1)
 SendKeys("<F5>")


 aidés moi svp
0
arch enemy123456 Messages postés 26 Date d'inscription jeudi 9 novembre 2006 Statut Membre Dernière intervention 8 mai 2007
9 nov. 2006 à 16:09
je peux pas crée un fichier .bat ???
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
9 nov. 2006 à 16:18
C'est pour être chiant mais le première fois c'était quand même assez compréhensible mais là je comprend pas trop :

j ai instaler un logiciel qui registre tt les frapes clavier et il ma donnée ce script :

Shell(Chr$(34)+"C:\Program Files\Softinterface, Inc\DiffDoc\DiffDoc.exe"+Chr$(34),1)UseWindow("DIFFDOC.EXE|RichTextWndClass|(1) Copie de balance_pcec_092006_v1.xls vs. Copie de balance_pcec_092006_v1.xls|9",1)
 SendKeys("<F5>")

c'est un logiciel qui enregistre les frappes du clavier, mais c'est un logiciel à pars de Excel ? c'est un keylogger ? et s'il te plait si tu ne fait pas d'effort d'écriture ne compte pas sur mon aide car je pense qu'il y a quand même de l'abus, on ne demande pas de ne pas faire une faute d'orthographes, on demande que ton texte soit : 1 sensé, 2 compréhensible. je pense que tu as trop pris l'habitude des "vé", "c" ou par exemple : "et svp quelq'un me écrir le code et emrci d avanace"

Si tu est aussi rigoureux en programmation que en français tu va te coltiner pleins pleins d'erreur. Vraiment un conseil soit rigoureux et surtout relis tes phrases pour voir si tu arrive à te comprendre. t peux prendre ton temps pour écrire, on est pas à 5min près, même si tu as un chef qui te pousse. En étant plus rigoureux tu gagnera plus de temps.

Sur ce, bon courrage; merci d'avance

Chris...
Web : Firstruner
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 16:30
Point n°9 du règlement CS:
On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret.

http://www.vbfrance.com/reglement.aspx

 Drikce 06
0
arch enemy123456 Messages postés 26 Date d'inscription jeudi 9 novembre 2006 Statut Membre Dernière intervention 8 mai 2007
9 nov. 2006 à 16:50
 je suis vraiment désoler
mais moi je veux s avoire juste si il est possible de crée un batch ou une commande VBA qui permet
de lancer une application avec une tâche sur cette application parceque moi je veux crée une bouton
dans excel avec la quelle on peut démarrer une application et executer la bouton "play" sur cette dernière
disant moi je veux que le lancement de l application " qui va comparais deux feuilles excel " sera effectué
invisiblement pour un utilisateur .
 
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 16:55
Je t'ai donné tous les éléments via les API! Après si tu veux pas faire fonctionner ton cerveau je vais pas le faire à ta place t'as tous les éléments en mains! Et c'est encore plus simple que se que je pensai car tu n'as cas simuler un la touche F5.

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 nov. 2006 à 17:00
Const
WM_LBUTTONDOWN = 513




Const WM_LBUTTONUP = 514




Private DeclareFunction SendMessage Lib"user32"Alias"SendMessageA" ( ByVal hwnd AsInteger , _





ByVal wMsg AsInteger , ByVal wParam AsInteger , ByVal lParam AsObject ) AsInteger





Private
Declare
Function GetWindowTextLength Lib"user32"Alias"GetWindowTextLengthA" _


(


ByVal hwnd AsInteger ) AsInteger













Public
Declare
Function SetForegroundWindow Lib"user32" ( ByVal hwnd AsInteger ) AsInteger










Private

Declare
Function FindWindow Lib"user32"Alias"FindWindowA" ( ByVal lpClassName AsString , _




ByVal lpWindowName AsString ) As


Integer







Dim
hwnd

As



Integer







hwnd = Int(FindWindow(vbNullString,




"TitreDeLaFenetreDeTonProgramme"
))


SetForegroundWindow(hwnd)




SendKeys.Send("{ESC}")












Et maitenant t'as juste à trouver l'équvalent de ça "{ESC}" pour F5 (
"{ESC}"
=echap)





 Drikce 06
0
Rejoignez-nous