Créer un .exe sous Excel

Fermé
Chacalou13 Messages postés 402 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 - 21 août 2003 à 10:14
sifusalade Messages postés 134 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 juillet 2021 - 16 août 2012 à 11:21
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

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
1
sifusalade Messages postés 134 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 juillet 2021 7
13 août 2012 à 01:57
ta méthode me semble fort intéressante, mais peux tu expliquer à quoi corresponds
boolFermeture = False
?

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 ?

Application.ToutCeQuiSuit
est-il lié à Excel lui même ?
0
Bonjour sifusalade,

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
0
sifusalade Messages postés 134 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 juillet 2021 7
16 août 2012 à 11:21
Merci beaucoup Yce pour ces réponses qui sont en plus claires et précises ;)
0