Besoin d'aide pour écrire code VBA Excel

Z

zangel

Guest
Bonjour

J'ai besoin de votre aide pour écrire le code VBA de ma macro.

1-Je veux ouvrir le fichier macros.xla de façon cachée à partir du fichier formulaire.xls.

J'ai insérer la macro suivante dans formulaire.xls.
Sub Workbook_Open()
Dim nomfichier As String
'ouvrir le fichier macros.xla
nomfichier = 'c:\\Excel\\macros.xla'
Workbooks.Open nomfichier
End Sub


Ça fonctionne sauf que je vois le fichier macros.xla. Est-ce qu'il y a moyen de le rendre invisble? Si oui commnent?

2- Quel est le code VBA que je dois associer à un bouton du fichier formulaire.xls pour appeler une macro qui se trouve dans macros.xla? Quel code dois-je mettre dans une macro de formulaire.xls pour appeler une macro de macros.xla?

En vous remerciant à l'avance de votre aide

Zangel
 
V

VieuxChrist

Guest
1. Après avoir créé un fichier .xla contenant l’action en VBA du bouton ou d’un autre contrôle, il faut mettre le fichier .xla dans le dossier « XLSTART » (C:\\Program Files\\Microsoft Office\\OFFICE11\\XLSTART pour la version 2003). Pas besoin d’incorporer une macro qui ouvre le fichier, il s’ouvrira et ne sera visible que dans VBA.
2. Dans le fichier .xls, pour un bouton, il faut afficher la barre d’outils « Formulaires » et non « Boîte à outils Contrôles ».
3. Lorsque le bouton est créé, la boîte de dialogue « Affecter une macro » s’ouvre automatiquement. Aucune macros du fichier .xla n’est listées, mais il suffit de taper le nom de la macro dans la partie « Nom de la macro : » (Attention !!! Uniquement le nom de la macro et pas « NomFichier!NomMacro ») et de cliquer « OK ».

Et voilà !
 
Z

zangel

Guest
Je ne peux pas mettre le fichier macros.xla dans XLSTART. Je dois laisser les deux fichiers sur le serveur commun afin que tous mes collègues puissent y accéder.

Donc je reviens avec ma question, est-ce qu'il y a moyen de le rendre invisble? Car si mes collègues le voient, ils vont le fermer et je ne veux pas car s'ils le ferment, les macros ne fonctionneront pas.

Pour l'histoire du bouton, je dois utiliser celui de la Boîte à outils Contrôles. Comment je fais pour appeler la macro de macros.xla?

merci
 
V

VieuxChrist

Guest
Quand on utilise un bouton de la barre d’outils « Boîte à outils Contrôles », il est inutile d’avoir un fichier .xla. En effet, ce type de bouton (CommandButton) possède sont propre module de classe.

Lorsque le bouton est créé, il est automatiquement sélectionné. Si ce n’est pas le cas, il faut cliquer sur le bouton de la barre d’outils représentant une latte et un crayon (Mode création). Ensuite avec le bouton droit de la souris sur le CommandButton, choisir dans le menu contextuel « Visualiser le code » et taper le code de l’action de ce bouton dans ce module. Le nom de la macro sera « Private Sub CommandButton1_Click() ».

Pour masquer les codes VBA, il suffit de bloquer l’affichage par mot de passe dans VBA. Le module ne sera pas apparent.

Pour mettre un mot de passe

1. Dans VBA, clique avec le bouton droit sur « VBAProject (NomClasseur) dans le volet VBAProject. Si ce volet n’est pas affiché, alors aller dans le menu « Affichage », puis « Explorateur de projet ». Dans le menu contextuel, choisir « Propriétés de VBAProject … ».
2. Prendre l’onglet protection et cocher la case « Verrouiller le projet pour l’affichage », puis entrer le mot de passe, le confirmer et puis « OK ».
3. Enregistre le fichier. Le mot de passe ne sera actif qu’après avoir fermé complètement le fichier.

Voilà ! Je ne vois pas d’autres solutions.
 

Discussions similaires

Réponses
3
Affichages
384

Statistiques des forums

Discussions
312 347
Messages
2 087 504
Membres
103 564
dernier inscrit
Paul 1