[VBA] Créer un raccourci vers une macro

Créer un raccourci vers une macro [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 06-06-2005 à 18:40:14    

Salut,
 
comme l'indique le titre, je souhaiterai créer un raccourci vers une macro Excel.
 
Il n'y a pas de bouton sur la feuille Excel, ca evitera aux usagers d'avoir a ouvrir le module VBA, de sélectionner la bonne feuille et de la lancer.
 
Mon idée serait de creer une icone sur le bureau et de lancer la bonne macro (et le fichier Excel en meme temps) lorsque l'on clique sur l'icone.
 
De plus, j'ai un autre probleme (tout bete), je voudrai verrouiller  le contenu des combobox car lorsque l'on clique dessus, on peut modifier le titre de la comboBox par defaut.
 
J'espere que vous m'aurez compris.
 
Merci pour vos réponses.

Reply

Marsh Posté le 06-06-2005 à 18:40:14   

Reply

Marsh Posté le 06-06-2005 à 20:48:57    

dans la fonction open de this woorbok tu appelles ta macro
 
et toujours dans this workbook /open tu rajoutes:
  For Each sht In ActiveWorkbook.Worksheets
    With sht
      .Select
      .Protect password:="Celui_que_tu_veux", UserInterfaceOnly:=True
    End With
  Next
 
cela verouille toutes modif non éffectué par le programme
mais ne vérouille pas le projet ==> sans danger

Reply

Marsh Posté le 08-06-2005 à 19:42:52    

Merci pour la réponse ca marche niquel.
 
Je voudrais verrouiller aussi l'acces au code (outil->macro->VBA), j'ai vu qu'on pouvait le faire mais je ne sais pas comment   :??:
 
Depuis une macro,j'appelle une fonction qui m'ouvre un autre fichier Excel situé dans le meme dossier, je voudrais savoir s'il existe comme en Vb un objet permettant de connaitre le chemin d'acces (en vb c'est app.path je crois) afin que je ne rajoute que \monfichieraouvrir.xls
 
Merci


Message édité par wice le 08-06-2005 à 19:55:28
Reply

Marsh Posté le 08-06-2005 à 21:18:07    

attention si tu verouilles ton projet tu ne pourras plus sauvegarder les données ecrites.
sinon dans l'editeur vb outils/propriétés projet
 
je ne connais pas la réponse a ta 2ieme reponses
 
fait un tour sur le site disciplus simplex
c'est une mine d'or

Reply

Marsh Posté le 08-06-2005 à 21:38:59    

en fait c est juste verrouiller l'acces au vba, pas le projet

Reply

Marsh Posté le 09-06-2005 à 07:44:00    

bon ben tu peux copier coller ce qui suis dans un module que tu appelles au démarrage
/|\ attention prévois le déblocage car tu n'auras plus de barre de menu dans TOUTES instances excel
 
Sub securite()
 
Dim CmdB As CommandBar
Application.ScreenUpdating = False
 
On Error Resume Next
Application.DisplayFormulaBar = False
 
     
   
  On Error Resume Next
  For Each sht In ActiveWorkbook.Worksheets
    With sht
      .Select
      .Protect password:="LeTiens", UserInterfaceOnly:=True
    End With
  Next
 
 
  For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
  Next CmdB
  Application.ScreenUpdating = True
end sub

Reply

Marsh Posté le 11-06-2005 à 22:28:13    

Pour le chemin du classeur courant:

ActiveWorkbook.Path


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 12-06-2005 à 22:32:55    

Merci pour les tuyaux.
 
Par contre j'ai un pb, lorsque j'active ce code dans le workbook
For Each sht In ActiveWorkbook.Worksheets
    With sht
      .Select
      .Protect password:="Celui_que_tu_veux", UserInterfaceOnly:=True
    End With
  Next  
 
je peux bien debloquer la premiere feuille avec mon mot de passe, par contre pour les autres, le mot de passe ne fonctionne pas. Je ne sais pas pourquoi.
Avez vous une réponse ?

Reply

Marsh Posté le 13-06-2005 à 07:48:15    

essaie un deblocage par macro
 
.unprotect password:="Celui_Que_Tu_Veux"
 
 
mais je n'ai jamais vu ton pb.

Reply

Marsh Posté le 13-06-2005 à 07:54:48    

ok je vais tester.
par contre pour cette ligne:
.Protect password:="Celui_que_tu_veux", UserInterfaceOnly:=True  
 
la partie "UserInterfaceOnly" est en minuscule, on dirait qu'Excel 97 ne me le prend pas.
Qu'elle doit etre le but de cette instruction?
Si c'est de consulter les feuilles Excel alors ca fonctionne, on peut les sélectionner.

Reply

Marsh Posté le 13-06-2005 à 07:54:48   

Reply

Marsh Posté le 13-06-2005 à 16:47:49    

Citation :

UserInterfaceOnly
Optional Variant. True to protect the user interface, but not macros. If this argument is omitted, protection applies both to macros and to the user interface.


Aussi bien sous Office 97 que les suivants.
 
Pour enlever la protection, c'est la méthode Unprotect(password)


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 14-06-2005 à 19:51:43    

merci, j'ai finalement réussi a enlever la protection.
 
Par contre j'arrive pas à verrouiller le texte des ComboBox.
Je m'explique, si je mets combo1.text="yes", lors de l'execution de la feuille vba, on peut modifier yes en cliquant non pas sur la petite fleche a droite mais en cliquant sur la combobox directement.
J'aimerais verrouiller ca et ne permettre juste a l'utilisateur de dérouler la liste.
 
je voudrais aussi passer d'un label a un bouton appuyant sur  
'Entrée' , je ne me souviens plus exactement comment il faut faire (keypress je crois).
 
D'autres part, j'utilise cette instruction activewindow.close mais j'aimerais eviter le message de sauvegarde (Voulez vous sauvegarder ...) en forcant une sauvegarde.
 
Voila, j'espere que vous pourrez me venir en aide

Reply

Marsh Posté le 14-06-2005 à 20:47:08    

1/ pour la sauvegarde auto
==> ActiveWorkbook.Save dans this workbook / before close
2/ pour ta combo, si tu ne veux pas de modif utilise une listbox
 
3/ je n'ai pas compris ce que tu veux faire avec ton label.

Reply

Marsh Posté le 14-06-2005 à 20:56:35    

en fait je voudrais que lorsqu'un utilisateur saisisse un mot dans la textBox (je me suis trompé), et qu il appuie sur la touche entrée, cela lance une procédure.

Reply

Marsh Posté le 14-06-2005 à 22:46:30    

La propriété "Default" de ton bouton (qui lance la macro) doit être à True.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 14-06-2005 à 22:50:12    

Pour la Combo, il existe une proriété "MatchRequired" qui empêche de mettre un texte autre qu'une entrée de la liste.
 
A tester.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 16-06-2005 à 08:02:18    

merci AlainTech et scuny pour vos tuyaux ca marche niquel.
Si on a deja un fichier Excel d'ouvert, peut on ouvrir mon fichier Excel contenant mes macros dans un nouveau Excel ou bien on est obligé de l'ouvrir dans le meme Excel, car l'execution des macros bloque Excel, on ne peut pas acceder aux autres fichiers (on peut pas cliquer sur Fenetre puis sélectionner le fichier).

Reply

Marsh Posté le 16-06-2005 à 19:16:55    

tu utiliseras toujours une et une seule instance d'excel.
donc si excel est déja ouvert, ton fichier se lancera et les macros qu'il contient seront lancés, et s'appliqueront a l'instance  (xfichiers)  a toi de tester pour voir si cela ne pose pas de pb

Reply

Marsh Posté le 16-06-2005 à 21:26:47    

J'ouvre régulièrement plusieurs instances d'Excel.
Au boulot, j'ai écrit une appli qui est dans un form modal (Excel 97).
Si j'ai besoin d'un autre fichier Excel, j'ouvre un 2e Excel. Pas de problème.


Message édité par AlainTech le 16-06-2005 à 22:22:00

---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 17-06-2005 à 08:52:30    

un 2ieme classeur!
 
je me suis mal exprimé.
 
ce que je voulais dire c'est qu'il n'est pas possible, a ma connaissance, d'avoir du multifenetre (avec parametre différent suivant la fenetre)
 
plusieur classeur (fichier) oui, mais si une modif de parametrage d'excel est faite (barre d'outil par ex), c'est pour tous les classeurs.


Message édité par scuny le 17-06-2005 à 08:53:09
Reply

Marsh Posté le 20-06-2005 à 07:21:37    

ok donc en fait, pour utiliser un autre fichier Excel, les utilisateurs sont obligés d'ouvrir un autre Excel si j ai bien compris.

Reply

Marsh Posté le 24-06-2005 à 01:38:15    

Oui, c'est la seule façon de pouvoir continuer à utiliser Excel en ayant un Form modal ouvert.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed