Créer un raccourci vers une macro [VBA] - VB/VBA/VBS - Programmation
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
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
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
Marsh Posté le 08-06-2005 à 21:38:59
en fait c est juste verrouiller l'acces au vba, pas le projet
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
Marsh Posté le 11-06-2005 à 22:28:13
Pour le chemin du classeur courant:
ActiveWorkbook.Path |
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 ?
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.
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.
Marsh Posté le 13-06-2005 à 16:47:49
Citation : UserInterfaceOnly |
Aussi bien sous Office 97 que les suivants.
Pour enlever la protection, c'est la méthode Unprotect(password)
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
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.
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.
Marsh Posté le 14-06-2005 à 22:46:30
La propriété "Default" de ton bouton (qui lance la macro) doit être à True.
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.
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).
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
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.
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.
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.
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.
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.