Ecrire dans un projet protégé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zxrenaud

XLDnaute Nouveau
Bonjour à tous,
J'ai un petit souci avec la protection de mon projet VBA.
Je m'explique:
Mon projet est protégé par mot de passe pour que les autres utilisateurs ne puissent pas y accéder (outils>proprités de projet>Protection>vérouiller le projet pour l'affichage + mot de passe).
Jusque là tout va bien mais j'ai crée récemment un programme qui écrit par lui même du code dans une macro et là impossible pour un utilisateur de le compiler à cause de la protection (l'utilisateur n'a pas accès au projet et donc le code d'écriture ne peut pas s'éxécuter).

Y a-t-il un moyen de désactiver la protection pendant que l'écriture automatique du code se fait et de la réactiver ensuite?

Je pense à qqch du genre:


VBProject.Protection = False (password = "MotDePasseDuProjet")

Mon code d'écriture...

VBProject.Protection = True (password = "MotDePasseDuProjet")


Merci d'avance
 
Re : Ecrire dans un projet protégé

Bonjour à tous, je relance mon sujet parce-que je n'arrive pas à résoudre mon problème...
Merci pour ton lien BrunoM45 mais si ton code marche super bien dans ton cas, pour le mien il ne fonctionne pas 🙁 .

J'explique mon problème plus en détail, j'ai crée une base de donnée et pour affecter les variables de cette base de leurs valeurs, j'ai crée un code qui écrit par lui même dans le projet VBA (je met un fichier si mon travail intéresse quelqu'un 🙂 ). Ce code transforme les données en langage VBA.

Pour que les utilisateurs du logiciel ne puissent pas accéder à la programmation du projet, je l'ai protégé (comme décrit dans le premier message) et je n'arrive pas à passer outre cette protection pour faire fonctionner ma base de donnée (problème de protection qui interdit au code d'écrire dans le projet). J'ai essayé la méthode de BrunoM45 mais elle ne fonctionne pas lorsque Visual Basic Editor est fermé 😡

Alors si quelqu'un pouvait m'aider parce-que là je sèche depuis quelques jours.

Je joint un fichier avec tout ce qu'il faut pour comprendre 😀

Merci
 

Pièces jointes

Re : Ecrire dans un projet protégé

Salut Zxrenaud,

Wouhaouuu, 8 jours pour répondre à un post, je crois que le record est battu 🙄

J'explique mon problème plus en détail, j'ai crée une base de donnée et pour affecter les variables de cette base de leurs valeurs, j'ai crée un code qui écrit par lui même dans le projet VBA. Ce code transforme les données en langage VBA.
Pourrais-tu nous expliquer le pourquoi de ce genre de programmation !?

Ecrire directement dans le code VBA, n'est jamais conseillé 😕

Mais pour y intégrer des vraiables avec les valeurs d'une BdD, là je ne comprends pas tout !

A dans 8 jours ou plus 😀
 
Re : Ecrire dans un projet protégé

Le but serait un peu long à expliquer, c'est pour les besoins d'un logiciel crée sous excel VBA (dans une entreprise). Je ne dispose que d'Excel pour faire une base de donnée et c'est le seul moyen que j'ai trouvé pour pouvoir affecter mes variables de leurs valeurs (mes fichiers de base de donnée ont d'autres fonctions aussi...). Mais si tu as une autre idée je suis preneur 😉 .
 
Re : Ecrire dans un projet protégé

Re,

Le but serait un peu long à expliquer, c'est pour les besoins d'un logiciel crée sous excel VBA (dans une entreprise)
Il est tout à fait dommage que tu ne veuilles pas nous l'expliquer 🙄

Car tu sais parfois, on se dirige sur un chemin ardu,
alors qu'une solution beaucoup plus simple est à ta portée, mais tu ne t'en rends pas compte 😉

Sinon, pourquoi ne pas laisser ces variables sur une feuille masquée, par exemple !?

A+
 
Re : Ecrire dans un projet protégé

Bonjour le forum.

zxrenaud, je ne sais pas si j'ai compris ton soucis, mais voici ce que je te propose...

Macro de déprotection --> execution d'un code --> (re)protection

Voici les macro
Code:
Sub ProtegeTout()
Dim Feuil

For Each Feuil In Application.Sheets

Feuil.Protect Password:="motdepasse"

Next Feuil

End Sub
Sub DeprotegeTout()
Dim Feuil

For Each Feuil In Application.Sheets

Feuil.Unprotect Password:="motdepasse"

Next Feuil

End Sub

Ensuite, tu exécute le code que tu veux ainsi :
Code:
Sub exemple()

Application.ScreenUpdating = False

Module1.DeprotegeTout

'ton code

Module1.ProtegeTout

Application.ScreenUpdating = True

End Sub

A bientôt
 
Re : Ecrire dans un projet protégé

Salut BrunoM45.

J'ai vu mon erreur 5 secondes après avoir poster...T'es un rapide!
Ce n'est pas étonnant d'avoir des réponses dans les plus brefs délais grâce à tes XLDnautes de ta trempe.

++ et bonne journée
 
Re : Ecrire dans un projet protégé

Salut Thomlau,

merci pour ton aide mais là tu déprotèges les feuilles et non le projet Visual Basic... J'ai dû mal m'expliquer 🙁

Je vais essayer d'expliquer le pourquoi du comment, tampis pour ceux qui n'aiment pas lire...

Je travaille sur un logiciel qui calcule les conditions de marche de machines de rectification de bagues de roulements (vitesse d'avance, temps de cycle etc etc...).
Pour son fonctionnement le logiciel fait appel à des constantes qui changent de valeurs suivant la machine utilisée, le type de bague rectifiée et encore plein de choses. Ce qui fait que j'ai à disposition une bonne centaine de fichiers excel contenant le nom des variables à charger et leurs valeurs (qui diffèrent selon ce qu'on veut faire vous l'aurez bien compris).
On choisit donc ce qu'on veut rectifier, sur quelle machine etc et selon, tel ou tel fichier est chargé (comme montré dans le fichier joint plus haut).

L'avantage des fichiers excel par rapport au code en dure est que j'ai crée des dictionnaires des variables et lorsqu'on clique sur le nom d'une variable, un programme va chercher sa définition, son unité, comment l'obtenir etc...
Cela aide mes collègues qui ne comprennent rien à la programmation du logiciel de pouvoir mettre à jour les bases de données et aux programmeurs de savoir ce que représente une variable lorsqu'ils doivent toucher au code (parce-que les noms ne sont pas toujours bien explicites 😛 ).

Voilà j'espère que j'ai été clair
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour