bonjour à tous,
je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier
de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant
que certains utilisateurs ne soient pas ) et je souaiterai également
verrouiller l 'acces au menu (par clic droit).
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
anonymousA
bonjour,
une proc complète due pour la partie API à Alain CROS qui invalide tous les menus d'Excel et qui lance à l'ouverture du fichier une procédure à toi qui crée un menu personnalisé.A manier avec précaution cependnat si tu n'es pas familiarisé à la manipulation des barres de menus sous Excel.
Dans le module ThisWorkbook, dans la procédure workbook_open et Workbook_BeforeClose
Private Sub Workbook_BeforeClose(Cancel As Boolean) LeHook BloqueCommandePersonnaliser True End Sub
Private Sub Workbook_Open() BloqueCommandePersonnaliser False LeHook True End Sub
Dans un module oridnaire
Private Declare Function LockWindowUpdate& Lib "user32" ( _ ByVal hwndLock&) Private Declare Function PostMessage& Lib "user32" _ Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&) Private Declare Function FindWindowEx& Lib "user32" _ Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$, ByVal lpsz2$) Private Declare Function GetWindowLong& Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&) Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long Private Declare Function SetWindowsHookEx& Lib "user32" _ Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&) Private Declare Function GetWindowText& Lib "user32" _ Alias "GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal cch&) Private Declare Function UnhookWindowsHookEx& Lib "user32" _ (ByVal hHook&) Private lgHook& Sub LeHook(Optional cache As Boolean) Const GWL_HINSTANCE& = -6 If cache Then InstallHook GetWindowLong(FindWindowEx(0&, 0&, "XLMAIN", _ Application.Caption), GWL_HINSTANCE) Else UnhookWindowsHookEx lgHook End If End Sub Sub InstallHook(lgInst&) Const WH_CBT& = &H5 #If VBA6 Then lgHook = SetWindowsHookEx(WH_CBT, AddressOf WinHook, _ lgInst, GetCurrentThreadId) #Else lgHook = SetWindowsHookEx(WH_CBT, AddrOf("WinHook"), _ lgInst, GetCurrentThreadId) #End If End Sub Private Function WinHook&(ByVal lMsg&, ByVal wParam&, ByRef lParam&) Const HCBT_ACTIVATE& = &H5, WM_SYSCOMMAND& = &H112, SC_CLOSE& = &HF060& Dim MYSTR$ If lMsg = HCBT_ACTIVATE Then LockWindowUpdate wParam MYSTR = Space$(100&) MYSTR = Left$(MYSTR, GetWindowText(wParam, MYSTR, 100&)) If MYSTR = "Personnaliser" Or MYSTR = "Personnalisation" Then PostMessage wParam, WM_SYSCOMMAND, SC_CLOSE, 0& Else LockWindowUpdate False End If End If WinHook = False End Function
Sub BloqueCommandePersonnaliser(bbar)
With Application .CommandBars.FindControl(ID:y7).Enabled = bbar .CommandBars("Toolbar List").Enabled = bbar End With For Each cb In Application.CommandBars cb.Enabled = bbar Next
TestBoAvecMenus 'ici la cration d'une barre de commandes personnaliséé 'dans laquelle tu mettras à la fin de création d'une barre appelée Mybar 'MyBar.Protection = msoBarNoCustomize
End sub
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
bonjour,
une proc complète due pour la partie API à Alain CROS qui invalide tous
les menus d'Excel et qui lance à l'ouverture du fichier une procédure à
toi qui crée un menu personnalisé.A manier avec précaution cependnat si
tu n'es pas familiarisé à la manipulation des barres de menus sous Excel.
Dans le module ThisWorkbook, dans la procédure workbook_open et
Workbook_BeforeClose
Private Sub Workbook_BeforeClose(Cancel As Boolean)
LeHook
BloqueCommandePersonnaliser True
End Sub
Private Sub Workbook_Open()
BloqueCommandePersonnaliser False
LeHook True
End Sub
Dans un module oridnaire
Private Declare Function LockWindowUpdate& Lib "user32" ( _
ByVal hwndLock&)
Private Declare Function PostMessage& Lib "user32" _
Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&,
ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" _
Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$,
ByVal lpsz2$)
Private Declare Function GetWindowLong& Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&)
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function SetWindowsHookEx& Lib "user32" _
Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&,
ByVal dwThreadId&)
Private Declare Function GetWindowText& Lib "user32" _
Alias "GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal cch&)
Private Declare Function UnhookWindowsHookEx& Lib "user32" _
(ByVal hHook&)
Private lgHook&
Sub LeHook(Optional cache As Boolean)
Const GWL_HINSTANCE& = -6
If cache Then
InstallHook GetWindowLong(FindWindowEx(0&, 0&, "XLMAIN", _
Application.Caption), GWL_HINSTANCE)
Else
UnhookWindowsHookEx lgHook
End If
End Sub
Sub InstallHook(lgInst&)
Const WH_CBT& = &H5
#If VBA6 Then
lgHook = SetWindowsHookEx(WH_CBT, AddressOf WinHook, _
lgInst, GetCurrentThreadId)
#Else
lgHook = SetWindowsHookEx(WH_CBT, AddrOf("WinHook"), _
lgInst, GetCurrentThreadId)
#End If
End Sub
Private Function WinHook&(ByVal lMsg&, ByVal wParam&, ByRef lParam&)
Const HCBT_ACTIVATE& = &H5, WM_SYSCOMMAND& = &H112, SC_CLOSE& = &HF060&
Dim MYSTR$
If lMsg = HCBT_ACTIVATE Then
LockWindowUpdate wParam
MYSTR = Space$(100&)
MYSTR = Left$(MYSTR, GetWindowText(wParam, MYSTR, 100&))
If MYSTR = "Personnaliser" Or MYSTR = "Personnalisation" Then
PostMessage wParam, WM_SYSCOMMAND, SC_CLOSE, 0&
Else
LockWindowUpdate False
End If
End If
WinHook = False
End Function
Sub BloqueCommandePersonnaliser(bbar)
With Application
.CommandBars.FindControl(ID:y7).Enabled = bbar
.CommandBars("Toolbar List").Enabled = bbar
End With
For Each cb In Application.CommandBars
cb.Enabled = bbar
Next
TestBoAvecMenus 'ici la cration d'une barre de commandes personnaliséé
'dans laquelle tu mettras à la fin de création d'une barre appelée Mybar
'MyBar.Protection = msoBarNoCustomize
End sub
bonjour à tous,
je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier
de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant
que certains utilisateurs ne soient pas ) et je souaiterai également
verrouiller l 'acces au menu (par clic droit).
une proc complète due pour la partie API à Alain CROS qui invalide tous les menus d'Excel et qui lance à l'ouverture du fichier une procédure à toi qui crée un menu personnalisé.A manier avec précaution cependnat si tu n'es pas familiarisé à la manipulation des barres de menus sous Excel.
Dans le module ThisWorkbook, dans la procédure workbook_open et Workbook_BeforeClose
Private Sub Workbook_BeforeClose(Cancel As Boolean) LeHook BloqueCommandePersonnaliser True End Sub
Private Sub Workbook_Open() BloqueCommandePersonnaliser False LeHook True End Sub
Dans un module oridnaire
Private Declare Function LockWindowUpdate& Lib "user32" ( _ ByVal hwndLock&) Private Declare Function PostMessage& Lib "user32" _ Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&) Private Declare Function FindWindowEx& Lib "user32" _ Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$, ByVal lpsz2$) Private Declare Function GetWindowLong& Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&) Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long Private Declare Function SetWindowsHookEx& Lib "user32" _ Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&) Private Declare Function GetWindowText& Lib "user32" _ Alias "GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal cch&) Private Declare Function UnhookWindowsHookEx& Lib "user32" _ (ByVal hHook&) Private lgHook& Sub LeHook(Optional cache As Boolean) Const GWL_HINSTANCE& = -6 If cache Then InstallHook GetWindowLong(FindWindowEx(0&, 0&, "XLMAIN", _ Application.Caption), GWL_HINSTANCE) Else UnhookWindowsHookEx lgHook End If End Sub Sub InstallHook(lgInst&) Const WH_CBT& = &H5 #If VBA6 Then lgHook = SetWindowsHookEx(WH_CBT, AddressOf WinHook, _ lgInst, GetCurrentThreadId) #Else lgHook = SetWindowsHookEx(WH_CBT, AddrOf("WinHook"), _ lgInst, GetCurrentThreadId) #End If End Sub Private Function WinHook&(ByVal lMsg&, ByVal wParam&, ByRef lParam&) Const HCBT_ACTIVATE& = &H5, WM_SYSCOMMAND& = &H112, SC_CLOSE& = &HF060& Dim MYSTR$ If lMsg = HCBT_ACTIVATE Then LockWindowUpdate wParam MYSTR = Space$(100&) MYSTR = Left$(MYSTR, GetWindowText(wParam, MYSTR, 100&)) If MYSTR = "Personnaliser" Or MYSTR = "Personnalisation" Then PostMessage wParam, WM_SYSCOMMAND, SC_CLOSE, 0& Else LockWindowUpdate False End If End If WinHook = False End Function
Sub BloqueCommandePersonnaliser(bbar)
With Application .CommandBars.FindControl(ID:y7).Enabled = bbar .CommandBars("Toolbar List").Enabled = bbar End With For Each cb In Application.CommandBars cb.Enabled = bbar Next
TestBoAvecMenus 'ici la cration d'une barre de commandes personnaliséé 'dans laquelle tu mettras à la fin de création d'une barre appelée Mybar 'MyBar.Protection = msoBarNoCustomize
End sub
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
Daniel
Bonsoir. Je ne suis pas trop à l'aise là-dedans. Pour le clic droit de la souris tu peux essayer :
For Each Controle In Application.CommandBars("Cell").Controls Controle.Visible = False Next Controle
Il y a aussi Controle.Delete et Controle.Reset, plus radical. (non testé !) Cordialement. Daniel "DENIS" a écrit dans le message de news:
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
Bonsoir.
Je ne suis pas trop à l'aise là-dedans.
Pour le clic droit de la souris tu peux essayer :
For Each Controle In Application.CommandBars("Cell").Controls
Controle.Visible = False
Next Controle
Il y a aussi Controle.Delete et Controle.Reset, plus radical. (non testé !)
Cordialement.
Daniel
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
9B9840ED-592C-42C1-9B35-832E545A24B9@microsoft.com...
bonjour à tous,
je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon
fichier
de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant
que certains utilisateurs ne soient pas ) et je souaiterai également
verrouiller l 'acces au menu (par clic droit).
Bonsoir. Je ne suis pas trop à l'aise là-dedans. Pour le clic droit de la souris tu peux essayer :
For Each Controle In Application.CommandBars("Cell").Controls Controle.Visible = False Next Controle
Il y a aussi Controle.Delete et Controle.Reset, plus radical. (non testé !) Cordialement. Daniel "DENIS" a écrit dans le message de news:
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
DENIS
bounjour à vous, j 'ai un petit problème de compilation avec ces lignes:
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" () Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$, ByVal lpsz2$)
Private Declare Function SetWindowsHookEx& Lib "user32" () Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
les lignes commencant par Alias sont en rouge .. Help (déjà que je comprend pas tout... le debuger est encore moins simple)
merci par avance
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
bounjour à vous,
j 'ai un petit problème de compilation avec ces lignes:
Private Declare Function PostMessage& Lib "user32" ()
Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&,
ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" ()
Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$,
ByVal lpsz2$)
Private Declare Function SetWindowsHookEx& Lib "user32" ()
Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&,
ByVal dwThreadId&)
les lignes commencant par Alias sont en rouge ..
Help (déjà que je comprend pas tout... le debuger est encore moins simple)
merci par avance
bonjour à tous,
je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier
de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant
que certains utilisateurs ne soient pas ) et je souaiterai également
verrouiller l 'acces au menu (par clic droit).
bounjour à vous, j 'ai un petit problème de compilation avec ces lignes:
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" () Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$, ByVal lpsz2$)
Private Declare Function SetWindowsHookEx& Lib "user32" () Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
les lignes commencant par Alias sont en rouge .. Help (déjà que je comprend pas tout... le debuger est encore moins simple)
merci par avance
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
isabelle
bonjour Denis,
en fait cette commande :
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
devrait être sur une même ligne, la copie fait en sorte un retour à la ligne qu'il ne devrait pas y avoir.
isabelle
bounjour à vous, j 'ai un petit problème de compilation avec ces lignes:
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" () Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$, ByVal lpsz2$)
Private Declare Function SetWindowsHookEx& Lib "user32" () Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
les lignes commencant par Alias sont en rouge .. Help (déjà que je comprend pas tout... le debuger est encore moins simple)
merci par avance
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).
merci par avance
bonjour Denis,
en fait cette commande :
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
devrait être sur une même ligne, la copie fait en sorte un retour à la ligne qu'il ne devrait pas y avoir.
isabelle
bounjour à vous,
j 'ai un petit problème de compilation avec ces lignes:
Private Declare Function PostMessage& Lib "user32" ()
Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&,
ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" ()
Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$,
ByVal lpsz2$)
Private Declare Function SetWindowsHookEx& Lib "user32" ()
Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&,
ByVal dwThreadId&)
les lignes commencant par Alias sont en rouge ..
Help (déjà que je comprend pas tout... le debuger est encore moins simple)
merci par avance
bonjour à tous,
je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier
de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant
que certains utilisateurs ne soient pas ) et je souaiterai également
verrouiller l 'acces au menu (par clic droit).
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
devrait être sur une même ligne, la copie fait en sorte un retour à la ligne qu'il ne devrait pas y avoir.
isabelle
bounjour à vous, j 'ai un petit problème de compilation avec ces lignes:
Private Declare Function PostMessage& Lib "user32" () Alias "PostMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
Private Declare Function FindWindowEx& Lib "user32" () Alias "FindWindowExA" (ByVal hWnd1&, ByVal hWnd2&, ByVal lpsz1$, ByVal lpsz2$)
Private Declare Function SetWindowsHookEx& Lib "user32" () Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&)
les lignes commencant par Alias sont en rouge .. Help (déjà que je comprend pas tout... le debuger est encore moins simple)
merci par avance
bonjour à tous, je souhaiterai verrouiller tous les menus d 'excel à l'appel de mon fichier de sorte qu 'il soit impossible de "bidouiller" les formats ..... (sachant que certains utilisateurs ne soient pas ) et je souaiterai également verrouiller l 'acces au menu (par clic droit).