[déplacé VB.NET -> VBA] Faire apparaître la calculatrice en un endroit précis de
Dilueur
Messages postés24Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention28 octobre 2011
-
6 janv. 2010 à 16:11
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
7 janv. 2010 à 03:10
Bonjour,
Au moyen d'un bouton qui déclenche une macro, j'appelle la calculatrice. Celle-ci apparaît au beau milieu de l'écran, en plein là où il ne faudrait pas ! Bien sûr, je n'ai qu'à la déplacer et on n'en parle plus... Mais peut-on la forcer à ce qu'elle apparaisse, par ex., en haut et à droite de l'écran ?
Je suis sous Excel 2007.
Voici la syntaxe (qui marche parfaitement bien) que j'ai utilisée pour appeler la calculatrice :
Sub Calculatrice()
Dim x
x = Shell("C:\WINDOWS\system32\CALC.EXE", 1)
End Sub
A voir également:
[déplacé VB.NET -> VBA] Faire apparaître la calculatrice en un endroit précis de
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 6 janv. 2010 à 19:06
Utilise ces APIs :
FindWindow pour trouver le handle associé à la fenêtre de la calculatrice.
SetWindowPos pour changer la position de la fenêtre dont tu connais le handle.
---
VB.NET is good ... VB6 is better
Dilueur
Messages postés24Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention28 octobre 2011 6 janv. 2010 à 19:48
Merci pour vos réponses.
À vrai dire je n'ai pas compris grand chose...
J'ai choisi la solution de PCPT. Je suis allé récupérer la routine se trouvant dans l'adresse indiquée.
J'ai collé la déclaration des APIS dans l'en-tête du module, puis ai copié la fonction dans le module.
Je n'ai pas compris à quoi elle servait exactement (peut-être stipuler les coordonnées spatiales de la calculatrice ??) et surtout comment l'utiliser dans la petite procédure appelant la calculatrice :
Sub Calculatrice()
Dim x
x = Shell("C:\WINDOWS\system32\CALC.EXE", 1)
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 6 janv. 2010 à 20:11
non le shell retourne un Process IDentifiant
on veut un HANDLE, celui de la fenêtre de la calculatrice pour ID.. celui que shell retourne
donc la routine nous convertie tout çà (pour simplifier) et après : action
Sub Calculatrice()
Dim x AS LONG
dim lHwnd as long
x = Shell("C:\WINDOWS\system32\CALC.EXE", 1)
lHwnd = InstanceToWnd(x)
'suite du travail sur lHwnd...
End Sub
[hr]
Vous n’avez pas trouvé la réponse que vous recherchez ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 7 janv. 2010 à 03:10
(perso) désolé je ne regarde pas ton lien : ghuysmans99 et moi t'avons sans aucun doute donné toutes les marches à suivre, il y a une partie "recherche personnelle" indispensable