Bonsoir,
j'ai ecrit une sub qui m'ouvre la calculatrice de windows
Sub ouvrir_calculett()
Dim calc
On Error GoTo badexe
calc = Shell("calc.exe", 1)
On Error GoTo 0
sortie:
Exit Sub
badexe:
MsgBox "Impossible de trouver la calculatrice de windows", vbCritical,
"!!!!!"
Resume sortie
End Sub
pourquoi dit on qu'il n'y a aucun synchro entre l'application executant
l'instruction shell et l'appli executee par shell
pouvez vous m'expliquez cet asynchrone de shell
vaut il mieux utiliser appactivate du genre :
appid = shell("c:\windows\calc.exe", 1)
appactivate appid
par la suite je me servirai de sendkeys pour envoyer des sequences de
touches (je bosse dessus)
merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
En direct de l'aide de la méthode Sendkeys dans l'aide de VBA d'excel
'-------------------------------------- Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice. '--------------------------------------
"andre" a écrit dans le message de news:
Bonsoir, j'ai ecrit une sub qui m'ouvre la calculatrice de windows Sub ouvrir_calculett() Dim calc On Error GoTo badexe calc = Shell("calc.exe", 1) On Error GoTo 0 sortie: Exit Sub badexe: MsgBox "Impossible de trouver la calculatrice de windows", vbCritical, "!!!!!" Resume sortie End Sub pourquoi dit on qu'il n'y a aucun synchro entre l'application executant l'instruction shell et l'appli executee par shell pouvez vous m'expliquez cet asynchrone de shell vaut il mieux utiliser appactivate du genre : appid = shell("c:windowscalc.exe", 1) appactivate appid par la suite je me servirai de sendkeys pour envoyer des sequences de touches (je bosse dessus) merci
-- andre
En direct de l'aide de la méthode Sendkeys dans l'aide de VBA d'excel
'--------------------------------------
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice.
AppActivate ReturnValue ' Active l'application Calculatrice.
For I = 1 To 100 ' Configure la boucle de comptage.
SendKeys I & "{+}", True ' Envoie des frappes de touches
Next I ' à l'application Calculatrice pour
' ajouter chaque valeur de I.
SendKeys "=", True ' Fait le total général.
SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer
' l'application Calculatrice.
'--------------------------------------
"andre" <andre260@cegetel.net> a écrit dans le message de news:
mn.a4937d72514c6160.51150@cegetel.net...
Bonsoir,
j'ai ecrit une sub qui m'ouvre la calculatrice de windows
Sub ouvrir_calculett()
Dim calc
On Error GoTo badexe
calc = Shell("calc.exe", 1)
On Error GoTo 0
sortie:
Exit Sub
badexe:
MsgBox "Impossible de trouver la calculatrice de windows", vbCritical,
"!!!!!"
Resume sortie
End Sub
pourquoi dit on qu'il n'y a aucun synchro entre l'application executant
l'instruction shell et l'appli executee par shell
pouvez vous m'expliquez cet asynchrone de shell
vaut il mieux utiliser appactivate du genre :
appid = shell("c:windowscalc.exe", 1)
appactivate appid
par la suite je me servirai de sendkeys pour envoyer des sequences de
touches (je bosse dessus)
merci
En direct de l'aide de la méthode Sendkeys dans l'aide de VBA d'excel
'-------------------------------------- Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice. '--------------------------------------
"andre" a écrit dans le message de news:
Bonsoir, j'ai ecrit une sub qui m'ouvre la calculatrice de windows Sub ouvrir_calculett() Dim calc On Error GoTo badexe calc = Shell("calc.exe", 1) On Error GoTo 0 sortie: Exit Sub badexe: MsgBox "Impossible de trouver la calculatrice de windows", vbCritical, "!!!!!" Resume sortie End Sub pourquoi dit on qu'il n'y a aucun synchro entre l'application executant l'instruction shell et l'appli executee par shell pouvez vous m'expliquez cet asynchrone de shell vaut il mieux utiliser appactivate du genre : appid = shell("c:windowscalc.exe", 1) appactivate appid par la suite je me servirai de sendkeys pour envoyer des sequences de touches (je bosse dessus) merci
-- andre
andre
merci michdenis je retiens ton code j'etais en train de l'ecrire un peu differement mais en fait c'est la 1ere partie de la question qui m'interresse a+
'-------------------------------------- Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice. '--------------------------------------
-- andre
merci michdenis
je retiens ton code
j'etais en train de l'ecrire un peu differement
mais en fait c'est la 1ere partie de la question qui m'interresse
a+
'--------------------------------------
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice.
AppActivate ReturnValue ' Active l'application Calculatrice.
For I = 1 To 100 ' Configure la boucle de comptage.
SendKeys I & "{+}", True ' Envoie des frappes de touches
Next I ' à l'application Calculatrice pour
' ajouter chaque valeur de I.
SendKeys "=", True ' Fait le total général.
SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer
' l'application Calculatrice.
'--------------------------------------
merci michdenis je retiens ton code j'etais en train de l'ecrire un peu differement mais en fait c'est la 1ere partie de la question qui m'interresse a+
'-------------------------------------- Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice. '--------------------------------------
-- andre
MichDenis
Supposons que tu veuilles faire attendre la macro pendant que l'application calculatrice demeure ouverte... essaie ceci :
Et probablement plus d'informations à cette adresse : (en supposant qu'elle soit toujours valide) http://longre.free.fr/pages/api/terminaison.htm
''--------------------------- 'utilsation de fonctions API : à copie dans le haut d'un module standard Declare Function WaitForSingleObject Lib "Kernel32" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Declare Function OpenProcess Lib "Kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Public Const INFINITE = &HFFFF '--------------------------- Function LanceEtAttendLaFin(ByVal CheminComplet As String) As Long Dim ProcessHandle As Long Dim ProcessId As Long, ret&
End Function '--------------------------- Sub AttendFinCalculatrice() chemin = "c:Windowssystem32Calc.exe" If LanceEtAttendLaFin(chemin) = 0 Then MsgBox "coucou" End Sub '---------------------------
"andre" a écrit dans le message de news:
merci michdenis je retiens ton code j'etais en train de l'ecrire un peu differement mais en fait c'est la 1ere partie de la question qui m'interresse a+
'-------------------------------------- Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice. '--------------------------------------
-- andre
Supposons que tu veuilles faire attendre la macro pendant que
l'application calculatrice demeure ouverte... essaie ceci :
Et probablement plus d'informations à cette adresse :
(en supposant qu'elle soit toujours valide)
http://longre.free.fr/pages/api/terminaison.htm
''---------------------------
'utilsation de fonctions API : à copie dans le haut d'un module standard
Declare Function WaitForSingleObject Lib "Kernel32" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Declare Function OpenProcess Lib "Kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Public Const INFINITE = &HFFFF
'---------------------------
Function LanceEtAttendLaFin(ByVal CheminComplet As String) As Long
Dim ProcessHandle As Long
Dim ProcessId As Long, ret&
End Function
'---------------------------
Sub AttendFinCalculatrice()
chemin = "c:Windowssystem32Calc.exe"
If LanceEtAttendLaFin(chemin) = 0 Then MsgBox "coucou"
End Sub
'---------------------------
"andre" <andre260@cegetel.net> a écrit dans le message de news:
mn.a4ae7d729536bc90.51150@cegetel.net...
merci michdenis
je retiens ton code
j'etais en train de l'ecrire un peu differement
mais en fait c'est la 1ere partie de la question qui m'interresse
a+
'--------------------------------------
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice.
AppActivate ReturnValue ' Active l'application Calculatrice.
For I = 1 To 100 ' Configure la boucle de comptage.
SendKeys I & "{+}", True ' Envoie des frappes de touches
Next I ' à l'application Calculatrice pour
' ajouter chaque valeur de I.
SendKeys "=", True ' Fait le total général.
SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer
' l'application Calculatrice.
'--------------------------------------
Supposons que tu veuilles faire attendre la macro pendant que l'application calculatrice demeure ouverte... essaie ceci :
Et probablement plus d'informations à cette adresse : (en supposant qu'elle soit toujours valide) http://longre.free.fr/pages/api/terminaison.htm
''--------------------------- 'utilsation de fonctions API : à copie dans le haut d'un module standard Declare Function WaitForSingleObject Lib "Kernel32" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Declare Function OpenProcess Lib "Kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Public Const INFINITE = &HFFFF '--------------------------- Function LanceEtAttendLaFin(ByVal CheminComplet As String) As Long Dim ProcessHandle As Long Dim ProcessId As Long, ret&
End Function '--------------------------- Sub AttendFinCalculatrice() chemin = "c:Windowssystem32Calc.exe" If LanceEtAttendLaFin(chemin) = 0 Then MsgBox "coucou" End Sub '---------------------------
"andre" a écrit dans le message de news:
merci michdenis je retiens ton code j'etais en train de l'ecrire un peu differement mais en fait c'est la 1ere partie de la question qui m'interresse a+
'-------------------------------------- Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice. '--------------------------------------