Créer un .exe sous Excel

Fermé
Chacalou13 Messages postés 393 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 135 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
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
sifusalade Messages postés 135 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 135 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
http://www.drmsoft.com/Excel-to-exe-converter.asp
1
Pitu Messages postés 1440 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 125
21 août 2003 à 10:49
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
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
21 août 2003 à 10:58
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
0
bmgg4 Messages postés 179 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 29 juin 2006 23
21 août 2003 à 19:40
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
21 août 2003 à 21:19
Merci bcp, je vais aller un peu fouiner par là-bas..

Grève de la signature
0
Profil bloqué
21 août 2003 à 23:42
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
0
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
0
haque_coucou Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 9 janvier 2004 1 > yba
8 janv. 2004 à 16:27
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!
0
yba > haque_coucou Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 9 janvier 2004
9 janv. 2004 à 09:46
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
0
haque_coucou Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 9 janvier 2004 1 > yba
9 janv. 2004 à 09:49
Dans ces cas la, tu n'as pas 36 solutions.
La seule que je vois, c'est de faire la mise a jour du nom a chaque evenement du classeur: on open, on change... C'est la seule maniere, a ma connaissance d'avoir un minimum de probleme sur ce nom de feuille...

Poiloulpilou!
0
Je n'ai pas saisi ton astuce, de quel évenement parles-tu ?
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
22 août 2003 à 09:34
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...
0
Haque_coucou
1 oct. 2003 à 10:00
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 ;-)
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
1 oct. 2003 à 18:56
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
0
haque_coucou Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 9 janvier 2004 1
21 oct. 2003 à 10:02
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!
0
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
0
haque_coucou Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 9 janvier 2004 1
22 déc. 2003 à 11:04
Oui mais non!
Ca ne fonctionne pas pour les raccourcis alt+tab, alt+esc
par exemple.
Si quelquun a une solution la dessus...

Poiloulpilou!
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
21 févr. 2007 à 10:38
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 !

0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
2 juin 2008 à 11:09
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
0
faut vraiment que je change de métier ...
0
A quand ta recherche pour l'année 2010 ?
héhéhé...
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
9 avril 2010 à 18:01
hé hé hé et oui fonctionnalité toujours inexistante ... et puis 7 ans après je fais encore la même chose .... faut vraiment que je change de métier !!!!
0
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...
0
(par contre pour faire ça faut manger pas mal de VBA)
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
3 août 2010 à 22:36
Oui c'est comme ça que je m'en sors mais ça n'empêche pas que l'on peut rentre facilement dans Excel par un Echap ou autre subtile Shift pour zapper le Workbook Open ... donc faut vraiment appeler Bill Gates ....
Merci quand même :-)
0
Tonton Léon
16 déc. 2010 à 04:47
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é ...!
0
Sinon à venir, à voir ce que ça donne: www.xlExe.com, le programme était en ligne pendant 3 jours, mais n'y est plus.
0
Chacalou13 Messages postés 393 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 21
16 juil. 2012 à 10:29
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 ;-)
0