OVH Cloud OVH Cloud

XY souris

23 réponses
Avatar
milloche
Bonjour
J'aimerais pouvoir disposer en permanence des X et Y du pointeur de souris, comme dans Autocad par
exemple. Ceci pour les utiliser dans des macros.
Dans les cases a1 et a2 volatiles ou dans la barre des taches, pour vérifier si ça marche, mais
surtout dans 2 variables permanentes (public ?) mises à jour en temps réel.
Pouvu que cà ne mette pas mon chips et Excel à genoux !
JMM

10 réponses

1 2 3
Avatar
milloche
Prêt à abandonner avec tristesse et désespoir, soudain non pas une mais
deux lumières divines. Toutes deux fonctionnent. Je ne sais plus quelle suivre.
Celle de Denis est sans doute passée par un serveur sur Saturne... les aléas.
Maintenant à moi de voir laquelle me conduira à Bethléem sans détour.
Merci.
<{;o))

"Modeste" a écrit dans le message de news:
Bonsour® milloche

Bonjour
J'aimerais pouvoir disposer en permanence des X et Y du pointeur de
souris, comme dans Autocad par exemple. Ceci pour les utiliser dans
des macros.
Dans les cases a1 et a2 volatiles ou dans la barre des taches, pour
vérifier si ça marche, mais surtout dans 2 variables permanentes
(public ?) mises à jour en temps réel.
Pouvu que cà ne mette pas mon chips et Excel à genoux !




en permanence Non !!!!
cela nécessiterait l'activation permanente d'une tache de fond, empêchant tout autre activité dans
Excel

Mais sur commande cela est possible,
- Affichage dans la barre d'état des coordonnées
- Récupération à la demande dans une feuille de ces mêmes coordonnées (ENTER)
- Retour au fonctionnement normal (ESCAPE)

http://excelabo.net/excel/compteclic.php?nom=gd-gidipad

il n'est pas nécessaire insérer un dessin ou image
attention lors de l'activation de la macro (saisieXY) les coordonnées sont inscrites dans la feuille
active colonne A et B
à chaque nouvelle activation la mémorisation recommence en ligne 1
Escape pour revenir au mode normal
Avatar
milloche
Bonjour Denis
Il m'est arrivé une fois ce genre de problème.
J'avis cliqué sur "enregistrer" au lieu de "envoyer" puis tapé OK sans lire le MsgBox, un réflexe.
Et mon message était enregistré ......mais dans le dossier brouillons.
Il ne risquait pas de partir tout seul.
Peut-être que..... regarde toujours !
JMM

"michdenis" a écrit dans le message de news:

Un exemplaire est en route depuis bientôt 3 hres.
Je ne sais toujours pas si le message s'est rendu
sur le forum ... aucun affichage !

ça doit être ça le ralentissement économique dont on
entend parler ! à moins que ce soit Garnote qui a le pied
sur le cable !!! ;-)

Voici une copie..

Au lieu d'afficher dans la barre d'état,
tu peux utiliser des variables...

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Ok As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single

'5000 représente la durée en seconde à adapter...
x = Timer + 5000
Do While x >= Timer
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Ok = True
Application.StatusBar = ""
End Sub
'-----------------------------------------





"milloche" a écrit dans le message de groupe de discussion :

Salut Denis
Merci mais c'est pas ce que je voudrais. Je parle en temps réel. Pas toutes les secondes.
Excel la connaît bien, lui, la position du pointeur. Autocad ou Draw affichent cela en
permanence.
Je demande donc un moyen de lui piquer cette info et de la mettre dans une case, ou la
barre d'état
ou et surtout dans une variable que je (ou une macro) pourrais consulter quand je veux.
Pas facile
je vois !
J'ai confiance.
JMM

"michdenis" a écrit dans le message de news:

Si ça peut te donner des idées, à chaque seconde, dans
la barre d'état s'affiche la position du curseur :

Copie ce qui suit dans un module standard et lance la procédure départ :

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
X As Long
Y As Long
End Type
Dim t As Date

'--------------------------------
Sub coord()
Dim Pxy As POINTAPI
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.X & " Vert : " & Pxy.Y
départ
End Sub
'--------------------------------
Sub départ()
t = Now + TimeValue("00:00:01")
Application.OnTime t, "Coord"

End Sub
'--------------------------------
Sub Arrêt()
Application.OnTime t, _
Procedure:="Coord", Schedule:úlse
Application.StatusBar = ""
End Sub
'--------------------------------




"milloche" a écrit dans le message de groupe de discussion
:

Bonjour
J'aimerais pouvoir disposer en permanence des X et Y du pointeur de souris, comme dans
Autocad par
exemple. Ceci pour les utiliser dans des macros.
Dans les cases a1 et a2 volatiles ou dans la barre des taches, pour vérifier si ça
marche,
mais
surtout dans 2 variables permanentes (public ?) mises à jour en temps réel.
Pouvu que cà ne mette pas mon chips et Excel à genoux !
JMM






Avatar
michdenis
Si c'était le cas, j'en aurais plusieurs ... !
;-)


"milloche" a écrit dans le message de groupe de discussion :

Bonjour Denis
Il m'est arrivé une fois ce genre de problème.
J'avis cliqué sur "enregistrer" au lieu de "envoyer" puis tapé OK sans lire le MsgBox, un
réflexe.
Et mon message était enregistré ......mais dans le dossier brouillons.
Il ne risquait pas de partir tout seul.
Peut-être que..... regarde toujours !
JMM

"michdenis" a écrit dans le message de news:

Un exemplaire est en route depuis bientôt 3 hres.
Je ne sais toujours pas si le message s'est rendu
sur le forum ... aucun affichage !

ça doit être ça le ralentissement économique dont on
entend parler ! à moins que ce soit Garnote qui a le pied
sur le cable !!! ;-)

Voici une copie..

Au lieu d'afficher dans la barre d'état,
tu peux utiliser des variables...

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Ok As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single

'5000 représente la durée en seconde à adapter...
x = Timer + 5000
Do While x >= Timer
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Ok = True
Application.StatusBar = ""
End Sub
'-----------------------------------------





"milloche" a écrit dans le message de groupe de discussion
:

Salut Denis
Merci mais c'est pas ce que je voudrais. Je parle en temps réel. Pas toutes les
secondes.
Excel la connaît bien, lui, la position du pointeur. Autocad ou Draw affichent cela en
permanence.
Je demande donc un moyen de lui piquer cette info et de la mettre dans une case, ou la
barre d'état
ou et surtout dans une variable que je (ou une macro) pourrais consulter quand je veux.
Pas facile
je vois !
J'ai confiance.
JMM

"michdenis" a écrit dans le message de news:

Si ça peut te donner des idées, à chaque seconde, dans
la barre d'état s'affiche la position du curseur :

Copie ce qui suit dans un module standard et lance la procédure départ :

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
X As Long
Y As Long
End Type
Dim t As Date

'--------------------------------
Sub coord()
Dim Pxy As POINTAPI
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.X & " Vert : " & Pxy.Y
départ
End Sub
'--------------------------------
Sub départ()
t = Now + TimeValue("00:00:01")
Application.OnTime t, "Coord"

End Sub
'--------------------------------
Sub Arrêt()
Application.OnTime t, _
Procedure:="Coord", Schedule:úlse
Application.StatusBar = ""
End Sub
'--------------------------------




"milloche" a écrit dans le message de groupe de
discussion
:

Bonjour
J'aimerais pouvoir disposer en permanence des X et Y du pointeur de souris, comme dans
Autocad par
exemple. Ceci pour les utiliser dans des macros.
Dans les cases a1 et a2 volatiles ou dans la barre des taches, pour vérifier si ça
marche,
mais
surtout dans 2 variables permanentes (public ?) mises à jour en temps réel.
Pouvu que cà ne mette pas mon chips et Excel à genoux !
JMM






Avatar
milloche
Salut,
Je reviens vers toi car ta solution ci-dessous me plait beaucoup.
Et elle ne bloque pas Excel. Je continue de travailler. Elle est courte...
Détail : j'ai tenté de diminuer l'intervalle de mesure de OnTime,
pour faire comme au cinéma, 24 images/secondes et je n'y arrive pas.
Essayé avec , ; : Excel n'en veut point de 1/10 de secondes.
Tu as bien sur encore un truc pour ça..
<{:o))
"michdenis" a écrit dans le message de news:

Si ça peut te donner des idées, à chaque seconde, dans
la barre d'état s'affiche la position du curseur :

Copie ce qui suit dans un module standard et lance la procédure départ :

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
X As Long
Y As Long
End Type
Dim t As Date

'--------------------------------
Sub coord()
Dim Pxy As POINTAPI
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.X & " Vert : " & Pxy.Y
départ
End Sub
'--------------------------------
Sub départ()
t = Now + TimeValue("00:00:01")
Application.OnTime t, "Coord"

End Sub
'--------------------------------
Sub Arrêt()
Application.OnTime t, _
Procedure:="Coord", Schedule:úlse
Application.StatusBar = ""
End Sub
'--------------------------------




"milloche" a écrit dans le message de groupe de discussion :

Bonjour
J'aimerais pouvoir disposer en permanence des X et Y du pointeur de souris, comme dans
Autocad par
exemple. Ceci pour les utiliser dans des macros.
Dans les cases a1 et a2 volatiles ou dans la barre des taches, pour vérifier si ça marche,
mais
surtout dans 2 variables permanentes (public ?) mises à jour en temps réel.
Pouvu que cà ne mette pas mon chips et Excel à genoux !
JMM



Avatar
MichDenis
Tu places tout ce qui suit dans un module standard :
Dans la procédure, 10 représente 10 millisecondes. Tu peux faire
varier le délai de une milliseconde à 1 secondes selon le délai que
tu désires en modifiant seulement cette valeur.

La procédure lorsque lancée, va s'exécuter tant et aussi longtemps
que tu n'auras pas lancé la procédure "Arrêt" et ce, peu importe
l'application que tu ouvriras. Je te ferai remarqué que l'affichage
demeurera toujours dans la barre d'état d'excel. Au besoin, tu peux
récupérer ces valeurs et les placées dans des variables au lieu de les
affichées dans la barre d'état.

Espérons que le message de rendra... j'éprouve beaucoup de problèmes
à l'expédition...ça doit être à cause de la température de l'eau de la marre !!
;-)


Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Fin As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single
Fin = False
Do While Fin = False
x = GetTickCount() + 10
Do While GetTickCount() < x
Loop
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Fin = True
Application.StatusBar = ""
End Sub
'-----------------------------------------
Avatar
milloche
Toujours rapide Denis !
Je n'ai pas testé, j'ai confiance, mais je veux te faire savoir de suite que le message est passé.
Vu tes ennuis actuels.
Cordialement.
JMM

"MichDenis" a écrit dans le message de news:
%
Tu places tout ce qui suit dans un module standard :
Dans la procédure, 10 représente 10 millisecondes. Tu peux faire
varier le délai de une milliseconde à 1 secondes selon le délai que
tu désires en modifiant seulement cette valeur.

La procédure lorsque lancée, va s'exécuter tant et aussi longtemps
que tu n'auras pas lancé la procédure "Arrêt" et ce, peu importe
l'application que tu ouvriras. Je te ferai remarqué que l'affichage
demeurera toujours dans la barre d'état d'excel. Au besoin, tu peux
récupérer ces valeurs et les placées dans des variables au lieu de les
affichées dans la barre d'état.

Espérons que le message de rendra... j'éprouve beaucoup de problèmes
à l'expédition...ça doit être à cause de la température de l'eau de la marre !!
;-)


Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Fin As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single
Fin = False
Do While Fin = False
x = GetTickCount() + 10
Do While GetTickCount() < x
Loop
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Fin = True
Application.StatusBar = ""
End Sub
'-----------------------------------------




Avatar
milloche
Et je l'ai déjà chez moi.!

"milloche" a écrit dans le message de news:

Toujours rapide Denis !
Je n'ai pas testé, j'ai confiance, mais je veux te faire savoir de suite que le message est passé.
Vu tes ennuis actuels.
Cordialement.
JMM

"MichDenis" a écrit dans le message de news:
%
Tu places tout ce qui suit dans un module standard :
Dans la procédure, 10 représente 10 millisecondes. Tu peux faire
varier le délai de une milliseconde à 1 secondes selon le délai que
tu désires en modifiant seulement cette valeur.

La procédure lorsque lancée, va s'exécuter tant et aussi longtemps
que tu n'auras pas lancé la procédure "Arrêt" et ce, peu importe
l'application que tu ouvriras. Je te ferai remarqué que l'affichage
demeurera toujours dans la barre d'état d'excel. Au besoin, tu peux
récupérer ces valeurs et les placées dans des variables au lieu de les
affichées dans la barre d'état.

Espérons que le message de rendra... j'éprouve beaucoup de problèmes
à l'expédition...ça doit être à cause de la température de l'eau de la marre !!
;-)


Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Fin As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single
Fin = False
Do While Fin = False
x = GetTickCount() + 10
Do While GetTickCount() < x
Loop
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Fin = True
Application.StatusBar = ""
End Sub
'-----------------------------------------








Avatar
milloche
Je savais pas qu'un ordi pouvait avoir des tics, comme les chiens alors.
envoi à 14:42:00
JMM
"milloche" a écrit dans le message de news:

Toujours rapide Denis !
Je n'ai pas testé, j'ai confiance, mais je veux te faire savoir de suite que le message est passé.
Vu tes ennuis actuels.
Cordialement.
JMM

"MichDenis" a écrit dans le message de news:
%
Tu places tout ce qui suit dans un module standard :
Dans la procédure, 10 représente 10 millisecondes. Tu peux faire
varier le délai de une milliseconde à 1 secondes selon le délai que
tu désires en modifiant seulement cette valeur.

La procédure lorsque lancée, va s'exécuter tant et aussi longtemps
que tu n'auras pas lancé la procédure "Arrêt" et ce, peu importe
l'application que tu ouvriras. Je te ferai remarqué que l'affichage
demeurera toujours dans la barre d'état d'excel. Au besoin, tu peux
récupérer ces valeurs et les placées dans des variables au lieu de les
affichées dans la barre d'état.

Espérons que le message de rendra... j'éprouve beaucoup de problèmes
à l'expédition...ça doit être à cause de la température de l'eau de la marre !!
;-)


Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Fin As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single
Fin = False
Do While Fin = False
x = GetTickCount() + 10
Do While GetTickCount() < x
Loop
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Fin = True
Application.StatusBar = ""
End Sub
'-----------------------------------------








Avatar
Daniel.C
Bien reçu le 02/03 à 00:30.
Daniel

Un exemplaire est en route depuis plus de 24 hres.
Je ne sais toujours pas si le message s'est rendu
sur le forum ... aucun affichage !

ça doit être ça le ralentissement économique dont on
entend parler ! à moins que ce soit Garnote qui a le pied
sur le cable !!! ;-)

Voici une copie..

Au lieu d'afficher dans la barre d'état,
tu peux utiliser des variables...

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As
Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
x As Long
Y As Long
End Type
Dim Ok As Boolean
'-----------------------------------------
Sub Départ()
Dim Pxy As POINTAPI
Dim x As Single

'5000 représente la durée en seconde à adapter...
x = Timer + 5000
Do While x >= Timer
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.x & " Vert : " & Pxy.Y
DoEvents
If Ok = True Then Exit Sub
Loop
End Sub
'-----------------------------------------
Sub arrêt()
Ok = True
Application.StatusBar = ""
End Sub
'-----------------------------------------





"milloche" a écrit dans le message de groupe de
discussion :
Bonjour Jacquouille
Effectivement, j'avais pas pensé à ça !
Bon,
Si tu n'en veux pas, j' la r'met dans ma culotte, ta tata dada, soin soin !
Air connu (au moins par moi)
Ne reste plus qu'à espérer une lumière divine ???
<(;O ((

"Jacquouille" a écrit dans le message de
news:
Bonsoir
et surtout dans une variable que je (ou une macro) pourrais consulter quand
je veux


Si tu mets ces données dans une variable, comment vas-tu y avoir accès? via
la souris......qui
changera de position, donc ta var changera aussi...
D'autre part, je crains que la macro ne fixe en dur ces coordonnées dans une
cellule...qui ne
variera plus. Un peu comme = maintenant()
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"milloche" a écrit dans le message de news:

Salut Denis
Merci mais c'est pas ce que je voudrais. Je parle en temps réel. Pas toutes
les secondes.
Excel la connaît bien, lui, la position du pointeur. Autocad ou Draw
affichent cela en permanence.
Je demande donc un moyen de lui piquer cette info et de la mettre dans une
case, ou la barre
d'état ou et surtout dans une variable que je (ou une macro) pourrais
consulter quand je veux.
Pas facile je vois !
J'ai confiance.
JMM

"michdenis" a écrit dans le message de news:

Si ça peut te donner des idées, à chaque seconde, dans
la barre d'état s'affiche la position du curseur :

Copie ce qui suit dans un module standard et lance la procédure départ :

'Dans le haut d'un module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As
Long

'Coordonnées d'un point de l'écran.
Type POINTAPI
X As Long
Y As Long
End Type
Dim t As Date

'--------------------------------
Sub coord()
Dim Pxy As POINTAPI
GetCursorPos Pxy
Application.StatusBar = "Horiz: " & Pxy.X & " Vert : " & Pxy.Y
départ
End Sub
'--------------------------------
Sub départ()
t = Now + TimeValue("00:00:01")
Application.OnTime t, "Coord"

End Sub
'--------------------------------
Sub Arrêt()
Application.OnTime t, _
Procedure:="Coord", Schedule:úlse
Application.StatusBar = ""
End Sub
'--------------------------------




"milloche" a écrit dans le message de groupe
de discussion :

Bonjour
J'aimerais pouvoir disposer en permanence des X et Y du pointeur de
souris, comme dans Autocad par
exemple. Ceci pour les utiliser dans des macros.
Dans les cases a1 et a2 volatiles ou dans la barre des taches, pour
vérifier si ça marche,
mais
surtout dans 2 variables permanentes (public ?) mises à jour en temps
réel. Pouvu que cà ne mette pas mon chips et Excel à genoux !
JMM













Avatar
Modeste
Bonsour® michdenis

Si c'était le cas, j'en aurais plusieurs ... !
;-)



;o)))
C'est le cas !!!!
ils sont tous là aujourd'hui ....
1 2 3