Créer un .exe sous Excel

[Fermé]
Signaler
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
-
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
-
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
A voir également:

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
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 ?
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
Messages postés
135
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
Merci beaucoup Yce pour ces réponses qui sont en plus claires et précises ;)
http://www.drmsoft.com/Excel-to-exe-converter.asp
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
1440
Date d'inscription
jeudi 3 octobre 2002
Statut
Contributeur
Dernière intervention
5 janvier 2013
121
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
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
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
Messages postés
179
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
29 juin 2006
23
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 ?
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
Merci bcp, je vais aller un peu fouiner par là-bas..

Grève de la signature

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
J'ai effectivement pensé à ce genre de test, cela devrait fonctionner.
Une autre question :
Je crée un nouveau menu au lancement du fichier.
Je veux rendre inactif (propriété enabled à faux) un élément d'un menu après sa création, est-ce possible ?
Quand je parcours la collection "commanBar", celle-ci comporte tous les menus et sous menus de Excel sauf le mien !!!
Une idée ?
Merci d'avance.
Désolé pour l'abus.
youcef
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
9 janvier 2004
1 > yba
Ce que tu veux masquer, c'est une des commande de menu par defaut ou c'est une des commandes de TON menu?
Si c'est ta barre,voila la commande:

Application.CommandBars("ma_barre").Visible = false si tu veux masquer ta barre entiere

Application.CommandBars("ma_barre").Controls(1).visible)false
si tu veux juste masquer le 1er bouton de ta barre

Ca roule?


Poiloulpilou!
Je me suis mal exprimé.
Je voudrais rendre inactif un élément de mon menu, pas d'un menu prédéfini.
Quand j'essaye d'accéder à ce menu dans un autre module de code alors celui-ci ne m'est pas accessible !
Què qten penses ti ?
youcef
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
9 janvier 2004
1 > yba
Quel est exactement cet element de ton menu stp?
Si il s'agit d'un element de TON menu, celui que tu as creer,okay, pas de pb, tu appliques la commande que je t'ai donné et c'est bon...

Poiloulpilou!
Ce que tu dis dois effectivement marcher, je m'en vais tester fissa fissa.
En tous les cas merci beaucoup de ta patience et de ta compréhension et j'espère à bientôt sur les ondes.

Je suis un fan de science fiction et dans ce genre il est de bon ton de penser que nous ne sommes pas seuls.
Alors la je confirme car à part sur Internet, comment trouver un fan de Johnny "Ah que coucou" baleise en VBA !!! ;-)
Je ne pense pas que je puisse un jour te donner des conseils en vba un jour mais sinon tu peux compter sur moi.
Encore une fois merci
youcef
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
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...

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 ;-)
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
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
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
9 janvier 2004
1
Et non, tu ne peux pas supprimer les raccourcis windows comme ctrl+alt+sup par exemple, la est le probleme....
Du coup, je cherche tjs!

Poiloulpilou!
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
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
9 janvier 2004
1
Oui mais non!
Ca ne fonctionne pas pour les raccourcis alt+tab, alt+esc
par exemple.
Si quelquun a une solution la dessus...

Poiloulpilou!
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
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 !

Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
C'est encore plus marrant de voir que 4 ans et 9 mois après ce post, je me repose encore la même question !!!
Il faudrait vraiment penser à créer des éxécutables depuis Excel ...

Grève de la signature
faut vraiment que je change de métier ...
A quand ta recherche pour l'année 2010 ?
héhéhé...
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
le petit message de 2011 .... pour la forme
je tourne en rond depuis très longtemps, je me pose le même genre de question
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
regarde la date du message original .... je crois qu'en 8 ans ils auraient pu intégrer cette fonctionnalité ;-)
pffffffffff j'étais jeune à l'époque ... l'insouciance ..... ahhhhh nostalgie ...
Doneex. Vive 2012 !
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
ah ah ah .... je veux intégrer le livre des records.
Le topic le plus long du web ... 9 ans à se poser la même question ...
A l'année prochaine ...
Sinon à venir, à voir ce que ça donne: www.xlExe.com, le programme était en ligne pendant 3 jours, mais n'y est plus.
Messages postés
393
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2012
21
Pas mal j'espère que les 2 derniers liens seront utiles à ceux qui se poseraient la question ....

moi c'est bon j'en ai plus besoin dorénavant ;-)