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
lafeuille 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
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" <xyz@wanadoo.fr> a écrit dans le message de news:
4310b1e0$0$27408$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431082b6$0$17203$8fcfb975@news.wanadoo.fr...
si tu mets dans ta feuille une valeur
oups en "a1" de la feuil1 bien entendu
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431078f6$0$5391$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431062e4$0$1724$8fcfb975@news.wanadoo.fr...
Tu verras que c' est moins difficile de s'en servir que de la créer
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431059e6$0$17238$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
43103d81$0$17211$8fcfb975@news.wanadoo.fr...
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" <adresse@ntiscud> a écrit dans le message de news:
e8m8LztqFHA.3160@TK2MSFTNGP14.phx.gbl...
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" <xyz@wanadoo.fr> a écrit dans le message de
news:4310054b$0$1022$8fcfb975@news.wanadoo.fr...
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
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
lafeuille 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
Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" a écrit dans le message de news:
4310b6de$0$5411$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
lafeuille 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
Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" <RGI@wanadoo.fr> a écrit dans le message de news:
4310b6de$0$5411$8fcfb975@news.wanadoo.fr...
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" <xyz@wanadoo.fr> a écrit dans le message de news:
4310b1e0$0$27408$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431082b6$0$17203$8fcfb975@news.wanadoo.fr...
si tu mets dans ta feuille une valeur
oups en "a1" de la feuil1 bien entendu
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431078f6$0$5391$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431062e4$0$1724$8fcfb975@news.wanadoo.fr...
Tu verras que c' est moins difficile de s'en servir que de la créer
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431059e6$0$17238$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
43103d81$0$17211$8fcfb975@news.wanadoo.fr...
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" <adresse@ntiscud> a écrit dans le message de news:
e8m8LztqFHA.3160@TK2MSFTNGP14.phx.gbl...
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" <xyz@wanadoo.fr> a écrit dans le message de
news:4310054b$0$1022$8fcfb975@news.wanadoo.fr...
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
Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" a écrit dans le message de news:
4310b6de$0$5411$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
lafeuille 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
Re salut
Je pense avoir trouvé, car ça marche
mon userform s'appelle solde
avant l'instruction
show.solde
j'ai mis
solde.texbox1= variable
est-ce la bonne manip
A+
yan
"yan" a écrit dans le message de news:
43114af6$0$27405$Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" a écrit dans le message de news:
4310b6de$0$5411$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
lafeuille 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
Re salut
Je pense avoir trouvé, car ça marche
mon userform s'appelle solde
avant l'instruction
show.solde
j'ai mis
solde.texbox1= variable
est-ce la bonne manip
A+
yan
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
43114af6$0$27405$8fcfb975@news.wanadoo.fr...
Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" <RGI@wanadoo.fr> a écrit dans le message de news:
4310b6de$0$5411$8fcfb975@news.wanadoo.fr...
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" <xyz@wanadoo.fr> a écrit dans le message de news:
4310b1e0$0$27408$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431082b6$0$17203$8fcfb975@news.wanadoo.fr...
si tu mets dans ta feuille une valeur
oups en "a1" de la feuil1 bien entendu
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431078f6$0$5391$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431062e4$0$1724$8fcfb975@news.wanadoo.fr...
Tu verras que c' est moins difficile de s'en servir que de la créer
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431059e6$0$17238$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
43103d81$0$17211$8fcfb975@news.wanadoo.fr...
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" <adresse@ntiscud> a écrit dans le message de news:
e8m8LztqFHA.3160@TK2MSFTNGP14.phx.gbl...
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" <xyz@wanadoo.fr> a écrit dans le message de
news:4310054b$0$1022$8fcfb975@news.wanadoo.fr...
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
Re salut
Je pense avoir trouvé, car ça marche
mon userform s'appelle solde
avant l'instruction
show.solde
j'ai mis
solde.texbox1= variable
est-ce la bonne manip
A+
yan
"yan" a écrit dans le message de news:
43114af6$0$27405$Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" a écrit dans le message de news:
4310b6de$0$5411$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
lafeuille 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
non c'est l'inverse
solde.show pour lancer l'userform
pour enlever l'user de l'écran tout en gardant les valeurs en mémoire
solde .hide
pour effacer l'user et la mémoire
unload.solde
et c'est bon pour charger ta variable dans le textbox
dans ton cas
textbox1.value = total + totalcrédit - totaldébit
"yan" a écrit dans le message de news:
43115133$0$27426$Re salut
Je pense avoir trouvé, car ça marche
mon userform s'appelle solde
avant l'instruction
show.solde
j'ai mis
solde.texbox1= variable
est-ce la bonne manip
A+
yan
"yan" a écrit dans le message de news:
43114af6$0$27405$Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" a écrit dans le message de news:
4310b6de$0$5411$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
lafeuille 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
non c'est l'inverse
solde.show pour lancer l'userform
pour enlever l'user de l'écran tout en gardant les valeurs en mémoire
solde .hide
pour effacer l'user et la mémoire
unload.solde
et c'est bon pour charger ta variable dans le textbox
dans ton cas
textbox1.value = total + totalcrédit - totaldébit
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
43115133$0$27426$8fcfb975@news.wanadoo.fr...
Re salut
Je pense avoir trouvé, car ça marche
mon userform s'appelle solde
avant l'instruction
show.solde
j'ai mis
solde.texbox1= variable
est-ce la bonne manip
A+
yan
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
43114af6$0$27405$8fcfb975@news.wanadoo.fr...
Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" <RGI@wanadoo.fr> a écrit dans le message de news:
4310b6de$0$5411$8fcfb975@news.wanadoo.fr...
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" <xyz@wanadoo.fr> a écrit dans le message de news:
4310b1e0$0$27408$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431082b6$0$17203$8fcfb975@news.wanadoo.fr...
si tu mets dans ta feuille une valeur
oups en "a1" de la feuil1 bien entendu
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431078f6$0$5391$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
431062e4$0$1724$8fcfb975@news.wanadoo.fr...
Tu verras que c' est moins difficile de s'en servir que de la créer
Salutations
Gilbert
"yan" <xyz@wanadoo.fr> a écrit dans le message de news:
431059e6$0$17238$8fcfb975@news.wanadoo.fr...
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" <RGI@wanadoo.fr> a écrit dans le message de news:
43103d81$0$17211$8fcfb975@news.wanadoo.fr...
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" <adresse@ntiscud> a écrit dans le message de news:
e8m8LztqFHA.3160@TK2MSFTNGP14.phx.gbl...
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" <xyz@wanadoo.fr> a écrit dans le message de
news:4310054b$0$1022$8fcfb975@news.wanadoo.fr...
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
non c'est l'inverse
solde.show pour lancer l'userform
pour enlever l'user de l'écran tout en gardant les valeurs en mémoire
solde .hide
pour effacer l'user et la mémoire
unload.solde
et c'est bon pour charger ta variable dans le textbox
dans ton cas
textbox1.value = total + totalcrédit - totaldébit
"yan" a écrit dans le message de news:
43115133$0$27426$Re salut
Je pense avoir trouvé, car ça marche
mon userform s'appelle solde
avant l'instruction
show.solde
j'ai mis
solde.texbox1= variable
est-ce la bonne manip
A+
yan
"yan" a écrit dans le message de news:
43114af6$0$27405$Salut gilbert
j'ai tout remplacé par un userform , c'est vrai c'est plus simple.
Mais dans un userform y a une chose que je sais pas faire
Comment je recupere la valeur de ma variable?
j'ai mis une textbox, une listbox, j'ai essayé de renseigner rowsource
mais ça veut pas.
ou est-ce que je merde
Merci de ton aide
je continu a chercher
A+
yan
"RGI" a écrit dans le message de news:
4310b6de$0$5411$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
lafeuille 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