Créer un .exe sous Excel
Chacalou13
Messages postés
405
Statut
Membre
-
sifusalade Messages postés 142 Statut Membre -
sifusalade Messages postés 142 Statut Membre -
Salut tout le monde,
J'ai créé un bel outil sous Excel et je voudrais savoir si on peut faire qq chose pour pouvoir l'ouvrir sans aller fouiner dans le code ( mais sans utiliser la protection du doc).
Autrement dit, je voudrais créer une sorte d'exécutable pour qu'il ne puisse pas avoir accès aux fonctionnalité d'Excel.
Est-ce possible ???
Merci d'avance.
Grève de la signature
J'ai créé un bel outil sous Excel et je voudrais savoir si on peut faire qq chose pour pouvoir l'ouvrir sans aller fouiner dans le code ( mais sans utiliser la protection du doc).
Autrement dit, je voudrais créer une sorte d'exécutable pour qu'il ne puisse pas avoir accès aux fonctionnalité d'Excel.
Est-ce possible ???
Merci d'avance.
Grève de la signature
A voir également:
- Convertir excel en exe
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- .Exe - Télécharger - Divers Utilitaires
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
15 réponses
Bonjour Chacalou13,
Je ne sais pas si cela peut t'aider, mais moi, je protege mes fichiers comme ceci pour que les utilisateurs ne triffouillent pas de trop. en prime mes feuilles et mon code vba sont protegés par mot de passe. je sais bien qu'il est toujours possible de "Bidouiller" mais ça marche pour la plupars des utilisateurs.
Cela se passe en 2 temps. D'abord, a l'ouverture, blocage de tous les raccourcis et affichage en plein ecran sans les onglets.
Ensuite, a la fermeture, reactivation de toutes ces options (il vaut mieux)
Dans "ThisWorkbook":
'_______________________________________________________
Private Sub Workbook_Open()
Application.WindowState = xlMaximized
Application.DisplayFullScreen = True
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.CommandBars(1).Enabled = False
Application.DisplayStatusBar = False
boolFermeture = False
'desactivation raccourcis claviers
'Alt
Application.OnKey "%{F1}", ""
Application.OnKey "%{F2}", ""
Application.OnKey "%{F3}", ""
Application.OnKey "%{F4}", ""
Application.OnKey "%{F5}", ""
Application.OnKey "%{F6}", ""
Application.OnKey "%{F7}", ""
Application.OnKey "%{F8}", ""
Application.OnKey "%{F9}", ""
Application.OnKey "%{F10}", ""
Application.OnKey "%{F11}", ""
Application.OnKey "%{F12}", ""
'Direct
Application.OnKey "{F2}", ""
Application.OnKey "{F3}", ""
Application.OnKey "{F4}", ""
Application.OnKey "{F5}", ""
Application.OnKey "{F6}", ""
Application.OnKey "{F7}", ""
Application.OnKey "{F8}", ""
Application.OnKey "{F9}", ""
Application.OnKey "{F10}", ""
Application.OnKey "{F11}", ""
Application.OnKey "{F12}", ""
'Ctrl
Application.OnKey "^{F1}", ""
Application.OnKey "^{F2}", ""
Application.OnKey "^{F3}", ""
Application.OnKey "^{F4}", ""
Application.OnKey "^{F5}", ""
Application.OnKey "^{F6}", ""
Application.OnKey "^{F7}", ""
Application.OnKey "^{F8}", ""
Application.OnKey "^{F9}", ""
Application.OnKey "^{F10}", ""
Application.OnKey "^{F11}", ""
Application.OnKey "^{F12}", ""
'shift
Application.OnKey "+{F1}", ""
Application.OnKey "+{F2}", ""
Application.OnKey "+{F3}", ""
Application.OnKey "+{F4}", ""
Application.OnKey "+{F5}", ""
Application.OnKey "+{F6}", ""
Application.OnKey "+{F7}", ""
Application.OnKey "+{F8}", ""
Application.OnKey "+{F9}", ""
Application.OnKey "+{F10}", ""
Application.OnKey "+{F11}", ""
Application.OnKey "+{F12}", ""
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call fermeture
End Sub
Dans un module:
'____________________________________________
Sub fermeture()
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayFormulaBar = True
ActiveWindow.DisplayHeadings = True
Application.CommandBars(1).Enabled = True
Application.DisplayStatusBar = True
Application.DisplayFullScreen = False
boolFermeture = True
ActiveWorkbook.Close True
'Activation raccourcis claviers
'Alt
Application.OnKey "%{F1}"
Application.OnKey "%{F2}"
Application.OnKey "%{F3}"
Application.OnKey "%{F4}"
Application.OnKey "%{F5}"
Application.OnKey "%{F6}"
Application.OnKey "%{F7}"
Application.OnKey "%{F8}"
Application.OnKey "%{F9}"
Application.OnKey "%{F10}"
Application.OnKey "%{F11}"
Application.OnKey "%{F12}"
'Direct
Application.OnKey "{F2}"
Application.OnKey "{F3}"
Application.OnKey "{F4}"
Application.OnKey "{F5}"
Application.OnKey "{F6}"
Application.OnKey "{F7}"
Application.OnKey "{F8}"
Application.OnKey "{F9}"
Application.OnKey "{F10}"
Application.OnKey "{F11}"
Application.OnKey "{F12}"
'Ctrl
Application.OnKey "^{F1}"
Application.OnKey "^{F2}"
Application.OnKey "^{F3}"
Application.OnKey "^{F4}"
Application.OnKey "^{F5}"
Application.OnKey "^{F6}"
Application.OnKey "^{F7}"
Application.OnKey "^{F8}"
Application.OnKey "^{F9}"
Application.OnKey "^{F10}"
Application.OnKey "^{F11}"
Application.OnKey "^{F12}"
'shift
Application.OnKey "+{F1}"
Application.OnKey "+{F2}"
Application.OnKey "+{F3}"
Application.OnKey "+{F4}"
Application.OnKey "+{F5}"
Application.OnKey "+{F6}"
Application.OnKey "+{F7}"
Application.OnKey "+{F8}"
Application.OnKey "+{F9}"
Application.OnKey "+{F10}"
Application.OnKey "+{F11}"
Application.OnKey "+{F12}"
End Sub
Je ne sais pas si cela peut t'aider, mais moi, je protege mes fichiers comme ceci pour que les utilisateurs ne triffouillent pas de trop. en prime mes feuilles et mon code vba sont protegés par mot de passe. je sais bien qu'il est toujours possible de "Bidouiller" mais ça marche pour la plupars des utilisateurs.
Cela se passe en 2 temps. D'abord, a l'ouverture, blocage de tous les raccourcis et affichage en plein ecran sans les onglets.
Ensuite, a la fermeture, reactivation de toutes ces options (il vaut mieux)
Dans "ThisWorkbook":
'_______________________________________________________
Private Sub Workbook_Open()
Application.WindowState = xlMaximized
Application.DisplayFullScreen = True
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.CommandBars(1).Enabled = False
Application.DisplayStatusBar = False
boolFermeture = False
'desactivation raccourcis claviers
'Alt
Application.OnKey "%{F1}", ""
Application.OnKey "%{F2}", ""
Application.OnKey "%{F3}", ""
Application.OnKey "%{F4}", ""
Application.OnKey "%{F5}", ""
Application.OnKey "%{F6}", ""
Application.OnKey "%{F7}", ""
Application.OnKey "%{F8}", ""
Application.OnKey "%{F9}", ""
Application.OnKey "%{F10}", ""
Application.OnKey "%{F11}", ""
Application.OnKey "%{F12}", ""
'Direct
Application.OnKey "{F2}", ""
Application.OnKey "{F3}", ""
Application.OnKey "{F4}", ""
Application.OnKey "{F5}", ""
Application.OnKey "{F6}", ""
Application.OnKey "{F7}", ""
Application.OnKey "{F8}", ""
Application.OnKey "{F9}", ""
Application.OnKey "{F10}", ""
Application.OnKey "{F11}", ""
Application.OnKey "{F12}", ""
'Ctrl
Application.OnKey "^{F1}", ""
Application.OnKey "^{F2}", ""
Application.OnKey "^{F3}", ""
Application.OnKey "^{F4}", ""
Application.OnKey "^{F5}", ""
Application.OnKey "^{F6}", ""
Application.OnKey "^{F7}", ""
Application.OnKey "^{F8}", ""
Application.OnKey "^{F9}", ""
Application.OnKey "^{F10}", ""
Application.OnKey "^{F11}", ""
Application.OnKey "^{F12}", ""
'shift
Application.OnKey "+{F1}", ""
Application.OnKey "+{F2}", ""
Application.OnKey "+{F3}", ""
Application.OnKey "+{F4}", ""
Application.OnKey "+{F5}", ""
Application.OnKey "+{F6}", ""
Application.OnKey "+{F7}", ""
Application.OnKey "+{F8}", ""
Application.OnKey "+{F9}", ""
Application.OnKey "+{F10}", ""
Application.OnKey "+{F11}", ""
Application.OnKey "+{F12}", ""
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call fermeture
End Sub
Dans un module:
'____________________________________________
Sub fermeture()
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayFormulaBar = True
ActiveWindow.DisplayHeadings = True
Application.CommandBars(1).Enabled = True
Application.DisplayStatusBar = True
Application.DisplayFullScreen = False
boolFermeture = True
ActiveWorkbook.Close True
'Activation raccourcis claviers
'Alt
Application.OnKey "%{F1}"
Application.OnKey "%{F2}"
Application.OnKey "%{F3}"
Application.OnKey "%{F4}"
Application.OnKey "%{F5}"
Application.OnKey "%{F6}"
Application.OnKey "%{F7}"
Application.OnKey "%{F8}"
Application.OnKey "%{F9}"
Application.OnKey "%{F10}"
Application.OnKey "%{F11}"
Application.OnKey "%{F12}"
'Direct
Application.OnKey "{F2}"
Application.OnKey "{F3}"
Application.OnKey "{F4}"
Application.OnKey "{F5}"
Application.OnKey "{F6}"
Application.OnKey "{F7}"
Application.OnKey "{F8}"
Application.OnKey "{F9}"
Application.OnKey "{F10}"
Application.OnKey "{F11}"
Application.OnKey "{F12}"
'Ctrl
Application.OnKey "^{F1}"
Application.OnKey "^{F2}"
Application.OnKey "^{F3}"
Application.OnKey "^{F4}"
Application.OnKey "^{F5}"
Application.OnKey "^{F6}"
Application.OnKey "^{F7}"
Application.OnKey "^{F8}"
Application.OnKey "^{F9}"
Application.OnKey "^{F10}"
Application.OnKey "^{F11}"
Application.OnKey "^{F12}"
'shift
Application.OnKey "+{F1}"
Application.OnKey "+{F2}"
Application.OnKey "+{F3}"
Application.OnKey "+{F4}"
Application.OnKey "+{F5}"
Application.OnKey "+{F6}"
Application.OnKey "+{F7}"
Application.OnKey "+{F8}"
Application.OnKey "+{F9}"
Application.OnKey "+{F10}"
Application.OnKey "+{F11}"
Application.OnKey "+{F12}"
End Sub
Diantre !!!
Pas courant, ce que tu cherches à faire.
Ca tient plus de la programmation VB qu'à de la feuille de calcul (au passage, je te rappelle qu'Excel n'est qu'un tableur, à l'origine ... ;o) )
Et cette feuille, elle doit faire quoi ? Calculer et afficher un résultat ? Imprimer quelque chose ?
En tout cas, ça me parait pas gagné, ton affaire ...
(:•Þ Pitu
Pas courant, ce que tu cherches à faire.
Ca tient plus de la programmation VB qu'à de la feuille de calcul (au passage, je te rappelle qu'Excel n'est qu'un tableur, à l'origine ... ;o) )
Et cette feuille, elle doit faire quoi ? Calculer et afficher un résultat ? Imprimer quelque chose ?
En tout cas, ça me parait pas gagné, ton affaire ...
(:•Þ Pitu
En fait c'est un outil de consultation.
Donc un Menu qui mène à d'autres feuilles, grace à des macros, des filtres élaborés, etc...
Le tout mixé avec un poil de VBA pour le faire apparaitre en plein écran , et lui donner ainsi l'apparence d'une application.
Le pb, c'est qu'avec un minimum de connaissance, tu peux facilement casser ce mode plein ecran (et même faire des modif à l'aide des raccourcis clavier).
Bref, j'essaie donc de trouver un moyen de faire qu'on ne puisse plus faire de mal à mon appli mais sans utiliser la protection du classeur .
Ouf c'est dit ....
Grève de la signature
Donc un Menu qui mène à d'autres feuilles, grace à des macros, des filtres élaborés, etc...
Le tout mixé avec un poil de VBA pour le faire apparaitre en plein écran , et lui donner ainsi l'apparence d'une application.
Le pb, c'est qu'avec un minimum de connaissance, tu peux facilement casser ce mode plein ecran (et même faire des modif à l'aide des raccourcis clavier).
Bref, j'essaie donc de trouver un moyen de faire qu'on ne puisse plus faire de mal à mon appli mais sans utiliser la protection du classeur .
Ouf c'est dit ....
Grève de la signature
Bonjour,
Si cela peut t'aider, toute une série de solutions pour bloquer différentes actions
http://www.excelabo.net/xl/protection.htm
http://perso.wanadoo.fr/frederic.sigonneau/Bricolos.htm
Monique
Elle est pas belle la vie ?
Si cela peut t'aider, toute une série de solutions pour bloquer différentes actions
http://www.excelabo.net/xl/protection.htm
http://perso.wanadoo.fr/frederic.sigonneau/Bricolos.htm
Monique
Elle est pas belle la vie ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tu peux désactiver ou protéger les feuille contre toutes les actions.
sinon tu peux caher ton code avec un mot de passe (faut voir dans les options de Visual Basic Editor) comme ça ton code sera protégé
mais pour produire un executable sous excel , c'est impossible , je le confirme, j'ai même assisté à un séminaire de Microsoft où cette question à été posée.
time is not money, time is life
sinon tu peux caher ton code avec un mot de passe (faut voir dans les options de Visual Basic Editor) comme ça ton code sera protégé
mais pour produire un executable sous excel , c'est impossible , je le confirme, j'ai même assisté à un séminaire de Microsoft où cette question à été posée.
time is not money, time is life
tu dis que l'on peux désactiver ou protéger les feuille contre toutes les actions.
Je cherche actuellement à empêcher, sur une feuille protégé, le fait qu'on puisse changer son nom.
Je ne peux pas simplement protéger le classeur car toutes les autres feuilles du classeur ne sont pas concernées par cette protection.
Merci d'avance si une solution existe en vba.
youcef
Je cherche actuellement à empêcher, sur une feuille protégé, le fait qu'on puisse changer son nom.
Je ne peux pas simplement protéger le classeur car toutes les autres feuilles du classeur ne sont pas concernées par cette protection.
Merci d'avance si une solution existe en vba.
youcef
Cela depend de ce que tu veux faire.
Les usagers de ton appli ont ils besoin de voir ta feuille ou non?
Si oui, ben ca va etre dur car j'ai un peu regardé et il est vrai que la fonction protect peut tout verrouiller excepter le nom d'onglet...
Si non, alors là c'est assez simple, meme pas besoin de code: tu vas dans ces propriete vba et tu lui dis SheetNotVisible.
Tiens moi au courant ;-)
Poiloulpilou!
Les usagers de ton appli ont ils besoin de voir ta feuille ou non?
Si oui, ben ca va etre dur car j'ai un peu regardé et il est vrai que la fonction protect peut tout verrouiller excepter le nom d'onglet...
Si non, alors là c'est assez simple, meme pas besoin de code: tu vas dans ces propriete vba et tu lui dis SheetNotVisible.
Tiens moi au courant ;-)
Poiloulpilou!
Bonjour,
Merci très beaucoup pour ta réponse,
malheureusemnt je m'attendais à ce que soit non positif car cette feuille doit rester pour de multiples raisons visible car par exemple quand on ouvre un classeur vierge de tout travail cette feuille est la seule présente et dans ce cas je ne peux pas la rendre non visible.
En tout les cas merci pour le coup de main.
Je continue à réfléchir et je tiens au courant en cas de miracle.
A bientôt.
youcef
Merci très beaucoup pour ta réponse,
malheureusemnt je m'attendais à ce que soit non positif car cette feuille doit rester pour de multiples raisons visible car par exemple quand on ouvre un classeur vierge de tout travail cette feuille est la seule présente et dans ce cas je ne peux pas la rendre non visible.
En tout les cas merci pour le coup de main.
Je continue à réfléchir et je tiens au courant en cas de miracle.
A bientôt.
youcef
Bonjour et Merci Mr filaliabdou,
Eh bien tant pis pour moi.
Je vais protéger les feuilles une à une, à l'ancienne.
Je vais écrire à Billou pour qu'il rajoute cette fonctionnalité :-)), ca pourrait être partique.
Parce que avoir le message d'erreur d'Excel quand tu essaies de remplir un champ protégé, c'est pas forcément très esthétique...
Eh bien tant pis pour moi.
Je vais protéger les feuilles une à une, à l'ancienne.
Je vais écrire à Billou pour qu'il rajoute cette fonctionnalité :-)), ca pourrait être partique.
Parce que avoir le message d'erreur d'Excel quand tu essaies de remplir un champ protégé, c'est pas forcément très esthétique...
Bijour!
Je travail sur excel et le code VBA derriere toute la journee.
Je peux t'assurer que tu peux tout verrouiller avec le code VBA, si tu as des questions, ecris moi à haque_coucou@hotmail.com
Par contre, le point bloquant que j'essai de resoudre en ce moment, c'est la desactivation/réaffectation des raccourcis windows.
Si quelqu'un a des idees la dessus....
Bizoo a tous ;-)
Je travail sur excel et le code VBA derriere toute la journee.
Je peux t'assurer que tu peux tout verrouiller avec le code VBA, si tu as des questions, ecris moi à haque_coucou@hotmail.com
Par contre, le point bloquant que j'essai de resoudre en ce moment, c'est la desactivation/réaffectation des raccourcis windows.
Si quelqu'un a des idees la dessus....
Bizoo a tous ;-)
Salut Haque_coucou,
Effectivement, mais ce post date un peu, et j'ai trouvé la solution depuis.
Pour ton problème, je crois que tu peux assez facilement supprimer tous les raccourcis clavier en VB.
Quand à la réaffectation , là ça me semble plus dur...
Grève de la signature
Effectivement, mais ce post date un peu, et j'ai trouvé la solution depuis.
Pour ton problème, je crois que tu peux assez facilement supprimer tous les raccourcis clavier en VB.
Quand à la réaffectation , là ça me semble plus dur...
Grève de la signature
Bien sur que tu peux reaffecter des raccourcis clavier a Excel, de la meme maniere que tu les annules.
Du genre
application.onkey "+c", "" annule la fonction CTRL + C pour application.onkey "+c", "macro1" attrinue a CTRL + C la macro macro1
application.onkey "+c" reinitiolise CTRL + C (fonction copier).
Ainsi pur proteger un classeur correctement, c'est un peu lourd, mais c'est faisable, tu peux desactiver tous les menu d'EXCEL, annuler le clique droit, proteger toutes les feuilles, proteger le classeur et annuler tous les raccourcis., tous ca avec l'obligation d'activer les macros, et c'est a peu pres protege.
Bon courage
Mangda
Du genre
application.onkey "+c", "" annule la fonction CTRL + C pour application.onkey "+c", "macro1" attrinue a CTRL + C la macro macro1
application.onkey "+c" reinitiolise CTRL + C (fonction copier).
Ainsi pur proteger un classeur correctement, c'est un peu lourd, mais c'est faisable, tu peux desactiver tous les menu d'EXCEL, annuler le clique droit, proteger toutes les feuilles, proteger le classeur et annuler tous les raccourcis., tous ca avec l'obligation d'activer les macros, et c'est a peu pres protege.
Bon courage
Mangda
Oui mais non!
Ca ne fonctionne pas pour les raccourcis alt+tab, alt+esc
par exemple.
Si quelquun a une solution la dessus...
Poiloulpilou!
Ca ne fonctionne pas pour les raccourcis alt+tab, alt+esc
par exemple.
Si quelquun a une solution la dessus...
Poiloulpilou!
C'est assez marrant de voir que 3 ans et 6 mois (au jour près !!!) après ce post, je me repose la même question !!!
Et qu'en cherchant sur gogole je tombe sur mon propre message !
Et qu'en cherchant sur gogole je tombe sur mon propre message !
la userform d'excel correspond à peu de chose près à une appli indépendante que tu aurais toi même codé. tu la lance et une page s'ouvre par dessus ta page excel active. Après ca tu n'as plus qu'à dissimuler ta page excel en la réduisant ou avec .visible = false (j'ai pas vérifié si la syntaxe fonctionne), puis c'est tout. Pour mieux faire tu peux meme executer ta USF à l'ouverture du fichier puis l'enregistrer et quitter à la fermeture de la USF, tout en n'oubliant pas de te laisser un moyen sécurisé d'accéder à ton code. Via un cmdButton protégé par mdp par exemple. Voila je sais pas si ca aide...
En fait toute la question tient à ceci :
Comment réaliser avec Excel (ou Open-Office Calc) les applis que Multiplan permettait facilement il y a plus de vingt ans : une page de calcul débarrassée de toutes les barres de menus Microsoft et de toutes les lignes de menus Microsoft, mais où seuls celles que j'avais décidé de laisser ou de créer apparaissaient : l'utilisateur de la page ne pouvait alors que procéder aux calculs (et affichages) prévus. C'était l'enfance de l'art.
Et c'était exactement la même chose avec le gestionnaire de base de données dBase.
Maintenant que les concepteurs ont pris l'habitude de nous vendre des applis qui sont à la bureautique ce que les 38 tonnes sont à la mère de famille qui va chercher son pain à la boulangerie du coin ... maintennt que, donc, tut est devenu infiniment plus compliqué ...!
Comment réaliser avec Excel (ou Open-Office Calc) les applis que Multiplan permettait facilement il y a plus de vingt ans : une page de calcul débarrassée de toutes les barres de menus Microsoft et de toutes les lignes de menus Microsoft, mais où seuls celles que j'avais décidé de laisser ou de créer apparaissaient : l'utilisateur de la page ne pouvait alors que procéder aux calculs (et affichages) prévus. C'était l'enfance de l'art.
Et c'était exactement la même chose avec le gestionnaire de base de données dBase.
Maintenant que les concepteurs ont pris l'habitude de nous vendre des applis qui sont à la bureautique ce que les 38 tonnes sont à la mère de famille qui va chercher son pain à la boulangerie du coin ... maintennt que, donc, tut est devenu infiniment plus compliqué ...!
Et, est-ce que le temps que ce classeur est ouvert, ces paramètres s'appliquent aux autres classeurs ouvert ?
Si par exemple, j'ai un fichier A ouvert où j'ai besoin des ces fonctions, le fait d'ouvrir ce fichier B (qui contient tout ça) va t-il appliquer ces paramètres au fichier A ?
est-il lié à Excel lui même ?
boolFermeture = False bloque la croix de fermeture du classeur, l'exemple que j'ai donné est un peu mal choisi parce que normalement il aurait fallu separer les chose a la fermeture:
je m'explique, dans le Workbook_BeforeClose il faut mettre:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Empêche la fermeture du classeur par la croix
If boolFermeture = False Then Cancel = True
End Sub
et pour fermer le fichier j'utilise un bouton qui commande la macro "fermeture" et dans le haut du module correspondant je rajoute : Public boolFermeture As Boolean
Pour repondre a ta question sur les parametres, ils s'appliquent a tous les fihiers ouverts dans la même session tant que celui-ci ne sera pas fermé, mais il y quand même une possibilité de rajouter un test en fonction du fichier actif pour gerer l'activation ou la desactivation des raccourcis et autres fonctions
"Application.ToutCeQuiSuit" ne s'applique qu'a la session Excel ouverte, si tu as un fichier word à coté, il ne sera pas impacté.
Dans l'exemple, j'ai séparé les choses pour que chacun puisse "jouer" avec les divers raccourcis, mais il y a plus simple si on veut oter tous les raccourcis.
_____________________________________________________
Dans Workbook_Open je remplace tous les "Application.ToutCeQuiSuit" par:
Desactive_Raccourcis
Dans Fermeture je remplace tous les "Application.ToutCeQuiSuit" par:
Active_Raccourcis
_____________________________________________________
Dans un module
_____________________________________________________
Sub Desactive_Raccourcis()
Dim Combin As Variant
Dim RacsArray As Variant
Dim Rac As Variant
Dim I As Long
On Error Resume Next
'Shift = "+"
'Ctrl = "^"
'Alt = "%"
'Shift-Ctrl, Shift- Alt, Ctrl-Alt, Shift-Ctrl-Alt
For Each Combin In Array("+", "^", "%", "+^", "+%", "^%", "+^%")
RacsArray = Array("{BS}", "{BREAK}", "{CAPSLOCK}", "{CLEAR}", "{DEL}", _
"{DOWN}", "{END}", "{ENTER}", "~", "{ESC}", "{HELP}", "{HOME}", _
"{INSERT}", "{LEFT}", "{NUMLOCK}", "{PGDN}", "{PGUP}", _
"{RETURN}", "{RIGHT}", "{SCROLLLOCK}", "{TAB}", "{UP}")
'Desactive les raccourcis clavier
For Each Rac In RacsArray
Application.OnKey Combin & Rac, ""
Next Rac
'Desactive les raccourcis numeriques
For I = 0 To 255
Application.OnKey Combin & Chr$(I), ""
Next I
'Desactive les raccourcis F1 - F15 avec Shift, Ctrl ou Alt
For I = 1 To 15
Application.OnKey Combin & "{F" & I & "}", ""
Next I
Next Combin
'Desactive les raccourcis F1 - F15
For I = 1 To 15
Application.OnKey "{F" & I & "}", ""
Next I
'Desactive PGDN and PGUP
Application.OnKey "{PGDN}", ""
Application.OnKey "{PGUP}", ""
End Sub
_____________________________________________________
et pour les reactiver avant la fermeture
_____________________________________________________
Sub Active_Raccourcis()
Dim Combin As Variant
Dim RacsArray As Variant
Dim Rac As Variant
Dim I As Long
On Error Resume Next
'Shift = "+"
'Ctrl = "^"
'Alt = "%"
'Shift-Ctrl, Shift- Alt, Ctrl-Alt, Shift-Ctrl-Alt
For Each Combin In Array("+", "^", "%", "+^", "+%", "^%", "+^%")
RacsArray = Array("{BS}", "{BREAK}", "{CAPSLOCK}", "{CLEAR}", "{DEL}", _
"{DOWN}", "{END}", "{ENTER}", "~", "{ESC}", "{HELP}", "{HOME}", _
"{INSERT}", "{LEFT}", "{NUMLOCK}", "{PGDN}", "{PGUP}", _
"{RETURN}", "{RIGHT}", "{SCROLLLOCK}", "{TAB}", "{UP}")
' Active les raccourcis clavier
For Each Rac In RacsArray
Application.OnKey Combin & Rac
Next Rac
' Active les raccourcis numeriques
For I = 0 To 255
Application.OnKey Combin & Chr$(I)
Next I
' Active les raccourcis F1 - F15 avec Shift, Ctrl ou Alt
For I = 1 To 15
Application.OnKey Combin & "{F" & I & "}"
Next I
Next Combin
' Active les raccourcis F1 - F15
For I = 1 To 15
Application.OnKey "{F" & I & "}"
Next I
'Active PGDN and PGUP
Application.OnKey "{PGDN}"
Application.OnKey "{PGUP}"
End Sub