J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton
"Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je
veux imposer le choix de critères avant l'impression.
Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.
Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par
le menu ou en cliquant sur le bouton) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Salutations!
"Patrick Fredin" a écrit dans le message de news:
Bonjour,
J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton "Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je veux imposer le choix de critères avant l'impression.
Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant impression.
Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par le menu ou en cliquant sur le bouton) ?
Merci pour votre aide.
-- Patrick
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du
document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes
accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du
bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Salutations!
"Patrick Fredin" <nospam_patrick.fredin@iquebec.com> a écrit dans le message de news:
A0E8670F-ECA7-47CD-9967-9353E8F146F4@microsoft.com...
Bonjour,
J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton
"Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je
veux imposer le choix de critères avant l'impression.
Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.
Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par
le menu ou en cliquant sur le bouton) ?
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Salutations!
"Patrick Fredin" a écrit dans le message de news:
Bonjour,
J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton "Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je veux imposer le choix de critères avant l'impression.
Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant impression.
Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par le menu ou en cliquant sur le bouton) ?
Merci pour votre aide.
-- Patrick
Alain CROS
Bonjour.
Je n'ai pas tester tous les cas de figures, mais ça doit le faire.
Dans un module.
Private Declare Function SetWindowsHookEx& _ Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
Private Declare Function GetCurrentThreadId& _ Lib "kernel32" _ ()
Private Declare Function UnhookWindowsHookEx& _ Lib "user32" _ (ByVal hHook&)
Private Declare Function GetClassName& Lib "user32" _ Alias "GetClassNameA" (ByVal hWnd&, ByVal lpClassName$, ByVal nMaxCount&)
Private Declare Function GetDlgCtrlID& Lib "user32" _ (ByVal hWnd&)
Private Declare Function SetWindowLong& _ Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function CallWindowProc& _ Lib "user32" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Private LeHook&, OldWinProc&
Private Function NomDeClass$(hWnd&) NomDeClass = Space$(20&) NomDeClass = Left$(NomDeClass, GetClassName(hWnd, NomDeClass, 20&)) End Function
Sub ApercuAvantImpression() Const WH_CBT& = &H5 LeHook = SetWindowsHookEx(WH_CBT, AddressOf HookMsgb, 0&, GetCurrentThreadId) Application.Dialogs(xlDialogPrintPreview).Show UnhookWindowsHookEx LeHook End Sub
Private Function ImpProc&(ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&) Const WM_DESTROY& = &H2, GWL_WNDPROC& = -4&, BM_SETSTATE& = &HF3 If Msg = WM_DESTROY Then SetWindowLong wParam, GWL_WNDPROC, OldWinProc End If If Msg = BM_SETSTATE Then If wParam = 1& Then MsgBox "Impossible d'imprimer.", vbCritical, "Spécial MichDenis" End If Exit Function End If ImpProc = CallWindowProc(OldWinProc, hWnd, Msg, wParam, lParam) End Function
Private Function HookMsgb&(ByVal lMsg&, ByVal wParam&, ByRef lParam&) Const HCBT_ACTIVATE& = 5&, GWL_WNDPROC& = -4&, HCBT_SETFOCUS& = 9& If lMsg = HCBT_SETFOCUS Then If NomDeClass(wParam) = "Button" Then If GetDlgCtrlID(wParam) = 3& Then UnhookWindowsHookEx LeHook OldWinProc = SetWindowLong(wParam, GWL_WNDPROC, AddressOf ImpProc) End If End If End If End Function
Alain CROS
"MichDenis" a écrit dans le message de news:
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Salutations!
Bonjour.
Je n'ai pas tester tous les cas de figures, mais ça doit le faire.
Dans un module.
Private Declare Function SetWindowsHookEx& _
Lib "user32" Alias "SetWindowsHookExA" _
(ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
Private Declare Function GetCurrentThreadId& _
Lib "kernel32" _
()
Private Declare Function UnhookWindowsHookEx& _
Lib "user32" _
(ByVal hHook&)
Private Declare Function GetClassName& Lib "user32" _
Alias "GetClassNameA" (ByVal hWnd&, ByVal lpClassName$, ByVal nMaxCount&)
Private Declare Function GetDlgCtrlID& Lib "user32" _
(ByVal hWnd&)
Private Declare Function SetWindowLong& _
Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function CallWindowProc& _
Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Private LeHook&, OldWinProc&
Private Function NomDeClass$(hWnd&)
NomDeClass = Space$(20&)
NomDeClass = Left$(NomDeClass, GetClassName(hWnd, NomDeClass, 20&))
End Function
Sub ApercuAvantImpression()
Const WH_CBT& = &H5
LeHook = SetWindowsHookEx(WH_CBT, AddressOf HookMsgb, 0&, GetCurrentThreadId)
Application.Dialogs(xlDialogPrintPreview).Show
UnhookWindowsHookEx LeHook
End Sub
Private Function ImpProc&(ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Const WM_DESTROY& = &H2, GWL_WNDPROC& = -4&, BM_SETSTATE& = &HF3
If Msg = WM_DESTROY Then
SetWindowLong wParam, GWL_WNDPROC, OldWinProc
End If
If Msg = BM_SETSTATE Then
If wParam = 1& Then
MsgBox "Impossible d'imprimer.", vbCritical, "Spécial MichDenis"
End If
Exit Function
End If
ImpProc = CallWindowProc(OldWinProc, hWnd, Msg, wParam, lParam)
End Function
Private Function HookMsgb&(ByVal lMsg&, ByVal wParam&, ByRef lParam&)
Const HCBT_ACTIVATE& = 5&, GWL_WNDPROC& = -4&, HCBT_SETFOCUS& = 9&
If lMsg = HCBT_SETFOCUS Then
If NomDeClass(wParam) = "Button" Then
If GetDlgCtrlID(wParam) = 3& Then
UnhookWindowsHookEx LeHook
OldWinProc = SetWindowLong(wParam, GWL_WNDPROC, AddressOf ImpProc)
End If
End If
End If
End Function
Alain CROS
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news: uUWzQSPJFHA.3992@TK2MSFTNGP10.phx.gbl...
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du
document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes
accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du
bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Je n'ai pas tester tous les cas de figures, mais ça doit le faire.
Dans un module.
Private Declare Function SetWindowsHookEx& _ Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
Private Declare Function GetCurrentThreadId& _ Lib "kernel32" _ ()
Private Declare Function UnhookWindowsHookEx& _ Lib "user32" _ (ByVal hHook&)
Private Declare Function GetClassName& Lib "user32" _ Alias "GetClassNameA" (ByVal hWnd&, ByVal lpClassName$, ByVal nMaxCount&)
Private Declare Function GetDlgCtrlID& Lib "user32" _ (ByVal hWnd&)
Private Declare Function SetWindowLong& _ Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function CallWindowProc& _ Lib "user32" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Private LeHook&, OldWinProc&
Private Function NomDeClass$(hWnd&) NomDeClass = Space$(20&) NomDeClass = Left$(NomDeClass, GetClassName(hWnd, NomDeClass, 20&)) End Function
Sub ApercuAvantImpression() Const WH_CBT& = &H5 LeHook = SetWindowsHookEx(WH_CBT, AddressOf HookMsgb, 0&, GetCurrentThreadId) Application.Dialogs(xlDialogPrintPreview).Show UnhookWindowsHookEx LeHook End Sub
Private Function ImpProc&(ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&) Const WM_DESTROY& = &H2, GWL_WNDPROC& = -4&, BM_SETSTATE& = &HF3 If Msg = WM_DESTROY Then SetWindowLong wParam, GWL_WNDPROC, OldWinProc End If If Msg = BM_SETSTATE Then If wParam = 1& Then MsgBox "Impossible d'imprimer.", vbCritical, "Spécial MichDenis" End If Exit Function End If ImpProc = CallWindowProc(OldWinProc, hWnd, Msg, wParam, lParam) End Function
Private Function HookMsgb&(ByVal lMsg&, ByVal wParam&, ByRef lParam&) Const HCBT_ACTIVATE& = 5&, GWL_WNDPROC& = -4&, HCBT_SETFOCUS& = 9& If lMsg = HCBT_SETFOCUS Then If NomDeClass(wParam) = "Button" Then If GetDlgCtrlID(wParam) = 3& Then UnhookWindowsHookEx LeHook OldWinProc = SetWindowLong(wParam, GWL_WNDPROC, AddressOf ImpProc) End If End If End If End Function
Alain CROS
"MichDenis" a écrit dans le message de news:
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Salutations!
MichDenis
Bravo Alain,
Cela fonctionne très bien. Il s'agit de lancer la procédure "Sub ApercuAvantImpression()" pour obtenir la fenêtre "Aperçu avant impression" et inhiber le bouton "imprimer" de cette fenêtre.
Bonne fin de journée,
Salutations!
"Alain CROS" a écrit dans le message de news: Bonjour.
Je n'ai pas tester tous les cas de figures, mais ça doit le faire.
Dans un module.
Private Declare Function SetWindowsHookEx& _ Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
Private Declare Function GetCurrentThreadId& _ Lib "kernel32" _ ()
Private Declare Function UnhookWindowsHookEx& _ Lib "user32" _ (ByVal hHook&)
Private Declare Function GetClassName& Lib "user32" _ Alias "GetClassNameA" (ByVal hWnd&, ByVal lpClassName$, ByVal nMaxCount&)
Private Declare Function GetDlgCtrlID& Lib "user32" _ (ByVal hWnd&)
Private Declare Function SetWindowLong& _ Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function CallWindowProc& _ Lib "user32" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Private LeHook&, OldWinProc&
Private Function NomDeClass$(hWnd&) NomDeClass = Space$(20&) NomDeClass = Left$(NomDeClass, GetClassName(hWnd, NomDeClass, 20&)) End Function
Sub ApercuAvantImpression() Const WH_CBT& = &H5 LeHook = SetWindowsHookEx(WH_CBT, AddressOf HookMsgb, 0&, GetCurrentThreadId) Application.Dialogs(xlDialogPrintPreview).Show UnhookWindowsHookEx LeHook End Sub
Private Function ImpProc&(ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&) Const WM_DESTROY& = &H2, GWL_WNDPROC& = -4&, BM_SETSTATE& = &HF3 If Msg = WM_DESTROY Then SetWindowLong wParam, GWL_WNDPROC, OldWinProc End If If Msg = BM_SETSTATE Then If wParam = 1& Then MsgBox "Impossible d'imprimer.", vbCritical, "Spécial MichDenis" End If Exit Function End If ImpProc = CallWindowProc(OldWinProc, hWnd, Msg, wParam, lParam) End Function
Private Function HookMsgb&(ByVal lMsg&, ByVal wParam&, ByRef lParam&) Const HCBT_ACTIVATE& = 5&, GWL_WNDPROC& = -4&, HCBT_SETFOCUS& = 9& If lMsg = HCBT_SETFOCUS Then If NomDeClass(wParam) = "Button" Then If GetDlgCtrlID(wParam) = 3& Then UnhookWindowsHookEx LeHook OldWinProc = SetWindowLong(wParam, GWL_WNDPROC, AddressOf ImpProc) End If End If End If End Function
Alain CROS
"MichDenis" a écrit dans le message de news:
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Salutations!
Bravo Alain,
Cela fonctionne très bien. Il s'agit de lancer la procédure "Sub ApercuAvantImpression()" pour obtenir la fenêtre
"Aperçu avant impression" et inhiber le bouton "imprimer" de cette fenêtre.
Bonne fin de journée,
Salutations!
"Alain CROS" <Personne@ICI> a écrit dans le message de news: eSRE1qYJFHA.1176@TK2MSFTNGP12.phx.gbl...
Bonjour.
Je n'ai pas tester tous les cas de figures, mais ça doit le faire.
Dans un module.
Private Declare Function SetWindowsHookEx& _
Lib "user32" Alias "SetWindowsHookExA" _
(ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
Private Declare Function GetCurrentThreadId& _
Lib "kernel32" _
()
Private Declare Function UnhookWindowsHookEx& _
Lib "user32" _
(ByVal hHook&)
Private Declare Function GetClassName& Lib "user32" _
Alias "GetClassNameA" (ByVal hWnd&, ByVal lpClassName$, ByVal nMaxCount&)
Private Declare Function GetDlgCtrlID& Lib "user32" _
(ByVal hWnd&)
Private Declare Function SetWindowLong& _
Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function CallWindowProc& _
Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Private LeHook&, OldWinProc&
Private Function NomDeClass$(hWnd&)
NomDeClass = Space$(20&)
NomDeClass = Left$(NomDeClass, GetClassName(hWnd, NomDeClass, 20&))
End Function
Sub ApercuAvantImpression()
Const WH_CBT& = &H5
LeHook = SetWindowsHookEx(WH_CBT, AddressOf HookMsgb, 0&, GetCurrentThreadId)
Application.Dialogs(xlDialogPrintPreview).Show
UnhookWindowsHookEx LeHook
End Sub
Private Function ImpProc&(ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Const WM_DESTROY& = &H2, GWL_WNDPROC& = -4&, BM_SETSTATE& = &HF3
If Msg = WM_DESTROY Then
SetWindowLong wParam, GWL_WNDPROC, OldWinProc
End If
If Msg = BM_SETSTATE Then
If wParam = 1& Then
MsgBox "Impossible d'imprimer.", vbCritical, "Spécial MichDenis"
End If
Exit Function
End If
ImpProc = CallWindowProc(OldWinProc, hWnd, Msg, wParam, lParam)
End Function
Private Function HookMsgb&(ByVal lMsg&, ByVal wParam&, ByRef lParam&)
Const HCBT_ACTIVATE& = 5&, GWL_WNDPROC& = -4&, HCBT_SETFOCUS& = 9&
If lMsg = HCBT_SETFOCUS Then
If NomDeClass(wParam) = "Button" Then
If GetDlgCtrlID(wParam) = 3& Then
UnhookWindowsHookEx LeHook
OldWinProc = SetWindowLong(wParam, GWL_WNDPROC, AddressOf ImpProc)
End If
End If
End If
End Function
Alain CROS
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news: uUWzQSPJFHA.3992@TK2MSFTNGP10.phx.gbl...
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du
document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes
accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du
bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)
Cela fonctionne très bien. Il s'agit de lancer la procédure "Sub ApercuAvantImpression()" pour obtenir la fenêtre "Aperçu avant impression" et inhiber le bouton "imprimer" de cette fenêtre.
Bonne fin de journée,
Salutations!
"Alain CROS" a écrit dans le message de news: Bonjour.
Je n'ai pas tester tous les cas de figures, mais ça doit le faire.
Dans un module.
Private Declare Function SetWindowsHookEx& _ Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
Private Declare Function GetCurrentThreadId& _ Lib "kernel32" _ ()
Private Declare Function UnhookWindowsHookEx& _ Lib "user32" _ (ByVal hHook&)
Private Declare Function GetClassName& Lib "user32" _ Alias "GetClassNameA" (ByVal hWnd&, ByVal lpClassName$, ByVal nMaxCount&)
Private Declare Function GetDlgCtrlID& Lib "user32" _ (ByVal hWnd&)
Private Declare Function SetWindowLong& _ Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function CallWindowProc& _ Lib "user32" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Private LeHook&, OldWinProc&
Private Function NomDeClass$(hWnd&) NomDeClass = Space$(20&) NomDeClass = Left$(NomDeClass, GetClassName(hWnd, NomDeClass, 20&)) End Function
Sub ApercuAvantImpression() Const WH_CBT& = &H5 LeHook = SetWindowsHookEx(WH_CBT, AddressOf HookMsgb, 0&, GetCurrentThreadId) Application.Dialogs(xlDialogPrintPreview).Show UnhookWindowsHookEx LeHook End Sub
Private Function ImpProc&(ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&) Const WM_DESTROY& = &H2, GWL_WNDPROC& = -4&, BM_SETSTATE& = &HF3 If Msg = WM_DESTROY Then SetWindowLong wParam, GWL_WNDPROC, OldWinProc End If If Msg = BM_SETSTATE Then If wParam = 1& Then MsgBox "Impossible d'imprimer.", vbCritical, "Spécial MichDenis" End If Exit Function End If ImpProc = CallWindowProc(OldWinProc, hWnd, Msg, wParam, lParam) End Function
Private Function HookMsgb&(ByVal lMsg&, ByVal wParam&, ByRef lParam&) Const HCBT_ACTIVATE& = 5&, GWL_WNDPROC& = -4&, HCBT_SETFOCUS& = 9& If lMsg = HCBT_SETFOCUS Then If NomDeClass(wParam) = "Button" Then If GetDlgCtrlID(wParam) = 3& Then UnhookWindowsHookEx LeHook OldWinProc = SetWindowLong(wParam, GWL_WNDPROC, AddressOf ImpProc) End If End If End If End Function
Alain CROS
"MichDenis" a écrit dans le message de news:
Bonjour Patrick,
Dans la fenêtre Aperçu avant impression, il y a un bouton à partir duquel il est possible de lancer l'impression du document. Personnellement, je ne connais pas de façon d'inhiber l'action de ce bouton. En conséquence, si tu donnes accès à cette fenêtre à l'usager.... il pourra imprimer à moins que tu saches comment faire pour annuler l'action du bouton imprimer de cette fenêtre. (ci c'est le cas, j'aimerais bien que tu partages ta façon de faire !)