OVH Cloud OVH Cloud

msgbox

14 réponses
Avatar
yan
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox" dans la
feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour un
néophyte tel que moi
MERCI
A+
yan

10 réponses

1 2
Avatar
jps
bonjour yan
as-tu essayé d'écrire "tout simplement" selon ta propre formule

MsgBox "zaza"

à +
jps


"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox" dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour un
néophyte tel que moi
MERCI
A+
yan




Avatar
jps
oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour lire la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox" dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour un
néophyte tel que moi
MERCI
A+
yan




Avatar
RGI
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long _
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0, GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) & "Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) & "Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0, GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) & "Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0, GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) & "Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour lire la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox" dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour un
néophyte tel que moi
MERCI
A+
yan







Avatar
yan
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long _
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0, GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) & "Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0, GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0, GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour lire
la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox" dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour un
néophyte tel que moi
MERCI
A+
yan











Avatar
RGI
Tu verras que c' est moins difficile de s'en servir que de la créer

Salutations

Gilbert


"yan" a écrit dans le message de news:
431059e6$0$17238$
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long _
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0, GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0, GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0, GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour lire
la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox"
dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour
un
néophyte tel que moi
MERCI
A+
yan















Avatar
yan
Salut
C'est sur et j'en serai bien incapable

J'ai donc testé ,et j'ai mis toute ta procédure dans un module
Cela fonctionne parfaitement bien
J'ai mis ma petite procédure ,(qui faisait apparaître une msgbox) dans le
même module
Et j'ai remplacé mon instruction msgbox......... par
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) & "Test"
en affectant dans "Private Function WinProc1" les valeurs pour afficher la
msgbox au bon endroit
jusque la pas de pb
Mais a la place de " msgbox 2 Spéciale !" je voudrais faire apparaître la
valeur d'une variable numérique que j'ai appelé total dans ma proc
mais si je fais cela Excel ce ferme avec une fenêtre me disant que Excel a
rencontré un problème
C'est peut-être parce que je mets du numérique a la place du texte
que dois-je modifier
A+
yan


"RGI" a écrit dans le message de news:
431062e4$0$1724$
Tu verras que c' est moins difficile de s'en servir que de la créer

Salutations

Gilbert


"yan" a écrit dans le message de news:
431059e6$0$17238$
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de
l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long _
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0, GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0,
GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0,
GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0,
GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour lire
la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox"
dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour
un
néophyte tel que moi
MERCI
A+
yan



















Avatar
RGI
Salut

En reprenant l'exemple du premier envoi

si tu mets dans ta feuille une valeur

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long _
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Position_MsgBox()
msg = Feuil1.Range("a1").Value
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0, GetCurrentThreadId)
MsgBox msg, vbInformation + vbOKOnly, Space(15) & "Test"

End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

"yan" a écrit dans le message de news:
431078f6$0$5391$
Salut
C'est sur et j'en serai bien incapable

J'ai donc testé ,et j'ai mis toute ta procédure dans un module
Cela fonctionne parfaitement bien
J'ai mis ma petite procédure ,(qui faisait apparaître une msgbox) dans le
même module
Et j'ai remplacé mon instruction msgbox......... par
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
en affectant dans "Private Function WinProc1" les valeurs pour afficher la
msgbox au bon endroit
jusque la pas de pb
Mais a la place de " msgbox 2 Spéciale !" je voudrais faire apparaître la
valeur d'une variable numérique que j'ai appelé total dans ma proc
mais si je fais cela Excel ce ferme avec une fenêtre me disant que Excel a
rencontré un problème
C'est peut-être parce que je mets du numérique a la place du texte
que dois-je modifier
A+
yan


"RGI" a écrit dans le message de news:
431062e4$0$1724$
Tu verras que c' est moins difficile de s'en servir que de la créer

Salutations

Gilbert


"yan" a écrit dans le message de news:
431059e6$0$17238$
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de
l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long
_
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0,
GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0,
GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0,
GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0,
GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour
lire la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox"
dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour
un
néophyte tel que moi
MERCI
A+
yan























Avatar
RGI
si tu mets dans ta feuille une valeur

oups en "a1" de la feuil1 bien entendu

Salutations

Gilbert

"yan" a écrit dans le message de news:
431078f6$0$5391$
Salut
C'est sur et j'en serai bien incapable

J'ai donc testé ,et j'ai mis toute ta procédure dans un module
Cela fonctionne parfaitement bien
J'ai mis ma petite procédure ,(qui faisait apparaître une msgbox) dans le
même module
Et j'ai remplacé mon instruction msgbox......... par
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
en affectant dans "Private Function WinProc1" les valeurs pour afficher la
msgbox au bon endroit
jusque la pas de pb
Mais a la place de " msgbox 2 Spéciale !" je voudrais faire apparaître la
valeur d'une variable numérique que j'ai appelé total dans ma proc
mais si je fais cela Excel ce ferme avec une fenêtre me disant que Excel a
rencontré un problème
C'est peut-être parce que je mets du numérique a la place du texte
que dois-je modifier
A+
yan


"RGI" a écrit dans le message de news:
431062e4$0$1724$
Tu verras que c' est moins difficile de s'en servir que de la créer

Salutations

Gilbert


"yan" a écrit dans le message de news:
431059e6$0$17238$
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de
l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long
_
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0,
GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0,
GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0,
GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0,
GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour
lire la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox"
dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué pour
un
néophyte tel que moi
MERCI
A+
yan























Avatar
yan
Salut
j'ai fait ce que tu m'as dit ça marche
Mais quand je remplace
msg = Range("a1").Value par
msg = total + totalcrédit - totaldébit qui est le résultat d'un calcul ça
plante
Et la je viens de me rendre compte d'une chose surprenante si le nombre est
supérieur a 5 caractères,point décimal compris ça plante
inférieur a 6 caractères c'est bon
exemple
10000 bon
100000 pas bon
326.12 pas bon
326.1 bon
3.213 bon
que ce passe t-il
cela est très mystérieux pour moi
tu as une idée
Moi arrête pour ce soir ça me prend la tête je lire un peu
bonsoir
A+
yan



"RGI" a écrit dans le message de news:
431082b6$0$17203$
si tu mets dans ta feuille une valeur

oups en "a1" de la feuil1 bien entendu

Salutations

Gilbert

"yan" a écrit dans le message de news:
431078f6$0$5391$
Salut
C'est sur et j'en serai bien incapable

J'ai donc testé ,et j'ai mis toute ta procédure dans un module
Cela fonctionne parfaitement bien
J'ai mis ma petite procédure ,(qui faisait apparaître une msgbox) dans le
même module
Et j'ai remplacé mon instruction msgbox......... par
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0, GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
en affectant dans "Private Function WinProc1" les valeurs pour afficher
la msgbox au bon endroit
jusque la pas de pb
Mais a la place de " msgbox 2 Spéciale !" je voudrais faire apparaître la
valeur d'une variable numérique que j'ai appelé total dans ma proc
mais si je fais cela Excel ce ferme avec une fenêtre me disant que Excel
a rencontré un problème
C'est peut-être parce que je mets du numérique a la place du texte
que dois-je modifier
A+
yan


"RGI" a écrit dans le message de news:
431062e4$0$1724$
Tu verras que c' est moins difficile de s'en servir que de la créer

Salutations

Gilbert


"yan" a écrit dans le message de news:
431059e6$0$17238$
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de
l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long
_
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0,
GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0,
GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0,
GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0,
GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour
lire la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox"
dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué
pour un
néophyte tel que moi
MERCI
A+
yan



























Avatar
RGI
certes cette manipulation des API n'est pas stable
pourquoi n'utilises-tu pas un userform pour faire ce que tu tentes de faire
avec une msgbox
c'est bien plus facile et ça ne cause pas de problème majeur.
Salutations
Gilbert


"yan" a écrit dans le message de news:
4310b1e0$0$27408$
Salut
j'ai fait ce que tu m'as dit ça marche
Mais quand je remplace
msg = Range("a1").Value par
msg = total + totalcrédit - totaldébit qui est le résultat d'un calcul ça
plante
Et la je viens de me rendre compte d'une chose surprenante si le nombre
est supérieur a 5 caractères,point décimal compris ça plante
inférieur a 6 caractères c'est bon
exemple
10000 bon
100000 pas bon
326.12 pas bon
326.1 bon
3.213 bon
que ce passe t-il
cela est très mystérieux pour moi
tu as une idée
Moi arrête pour ce soir ça me prend la tête je lire un peu
bonsoir
A+
yan



"RGI" a écrit dans le message de news:
431082b6$0$17203$
si tu mets dans ta feuille une valeur

oups en "a1" de la feuil1 bien entendu

Salutations

Gilbert

"yan" a écrit dans le message de news:
431078f6$0$5391$
Salut
C'est sur et j'en serai bien incapable

J'ai donc testé ,et j'ai mis toute ta procédure dans un module
Cela fonctionne parfaitement bien
J'ai mis ma petite procédure ,(qui faisait apparaître une msgbox) dans
le même module
Et j'ai remplacé mon instruction msgbox......... par
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0,
GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
en affectant dans "Private Function WinProc1" les valeurs pour afficher
la msgbox au bon endroit
jusque la pas de pb
Mais a la place de " msgbox 2 Spéciale !" je voudrais faire apparaître
la valeur d'une variable numérique que j'ai appelé total dans ma proc
mais si je fais cela Excel ce ferme avec une fenêtre me disant que Excel
a rencontré un problème
C'est peut-être parce que je mets du numérique a la place du texte
que dois-je modifier
A+
yan


"RGI" a écrit dans le message de news:
431062e4$0$1724$
Tu verras que c' est moins difficile de s'en servir que de la créer

Salutations

Gilbert


"yan" a écrit dans le message de news:
431059e6$0$17238$
Salut
Ah oui c'est simple!!
Pour un non initié je trouve ça énorme, Mais je vais essayé de
l'utiliser.
Je mets cette proc dans un module?
Merci de m'avoir répondu
A+
yan


"RGI" a écrit dans le message de news:
43103d81$0$17211$
Bonjour

il y a ceci

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long _
, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As
Long _
, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long _
, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private lgHook As Long

Sub Positionned_MsgBox()
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc, 0,
GetCurrentThreadId)
MsgBox " msgbox1 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc1, 0,
GetCurrentThreadId)
MsgBox " msgbox 2 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc2, 0,
GetCurrentThreadId)
MsgBox " msgbox 3 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"
lgHook = SetWindowsHookEx(&H5, AddressOf WinProc3, 0,
GetCurrentThreadId)
MsgBox " msgbox 4 Spéciale !", vbInformation + vbOKOnly, Space(15) &
"Test"


End Sub

Private Function WinProc(ByVal lMsg As Long, ByVal wParam As Long) As
Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function

Private Function WinProc1(ByVal lMsg As Long, ByVal wParam As Long)
As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 50
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc1 = False
End Function
Private Function WinProc2(ByVal lMsg As Long, ByVal wParam As Long)
As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 50
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc2 = False
End Function

Private Function WinProc3(ByVal lMsg As Long, ByVal wParam As Long)
As Long
'
If lMsg = 5 Then
'remplacer les valeurs ci dessous par les valeurs désirées
vertical = 250
horizontal = 550
SetWindowPos wParam, 0, horizontal, vertical, 0, 0, &H15
UnhookWindowsHookEx lgHook
End If
WinProc3 = False
End Function




salutaions

Gilbert
"jps" a écrit dans le message de news:

oups pardon, yan, tu as dit "positionner"...moi, j'ai le chic pour
lire la
question APRES y avoir répondu
jps (qui ne voit pas comment faire non plus)

"yan" a écrit dans le message de
news:4310054b$0$1022$
Bonjour a toutes et tous
Y a t-il une façon simple( très simple) de positionner une "msgbox"
dans
la

feuille courante.
J'ai trouvé un exemple sur excelabo qui m'a parut très compliqué
pour un
néophyte tel que moi
MERCI
A+
yan































1 2