Problème de protection de VB

max94

XLDnaute Nouveau
Problème de protection de VB [Non Résolu]

Bonjour à tout le forum,

Je me suis beaucoup instruit de vos fil de discussion pour apprendre à utiliser VB et Excel.

Maintenant, j'ai un gros soucis :

Je sais déprotéger VB et le reprotéger, mais lorsque je souhaite reprotéger vb, il faut que le classeur soit réouvert.

Or lorsque je réouvre le classeur sur lui même, celui-ci créé un bug d'excel qui se fige et est obligé d'être refermé.

Ca ne posait pas de problème avant que mon fichier grossisse (7MO actuellement)

Si quelqu'un aurait une solution à m'apporter afin de résoudre ce problème, se serait génial!!!

Je vous remercie d'avance et attend de vos nouvelles
 
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,

Oui je sais, pour ce problème, j'ai dû initialiser X à 1 et rajouter une ligne vierge dans Instruction!!!

j'ai pas compris d'ailleurs pourquoi ça marchait chez lui, mais avec les modifs que je t'ai dis, ça marche!!!

Bon, je continu les test
++
Amicalement,

Max
 

tirex28

XLDnaute Occasionnel
Re : Problème de protection de VB

Bonjour,

J'ai pu reproduire votre probleme sur

Code:
.InsertLines X + .CountOfLines, Instructions(X)

en décochant l'option "Déclarations des variables obligatoires" qui implique l'inscription automatique d'une ligne de code bien utile:

Code:
Option Explicit

et en effet on peut le résoudre simplement en modifiant cette ligne comme ceci:

Code:
.InsertLines X + 1 + .CountOfLines, Instructions(X)

De la sorte la procedure s'execute sans probleme quelque soit l'option choisie.


@max merci pour le retour mais je dois souligner que les contributions de spitnolan m'ont bien aidé dans l'élaboration de ce code.

Cordialement,
Tirex28/

EDIT:mad:max Je viens de regarder ton fichier intégrant la deprotection, dans ta procedure "fonctionalancer" il est inutile d'inscrire à nouveau le mot de passe du projet. Tout fonctionne tres bien comme ceci:
Code:
Sub fonctionàlancer()
DeprotectionMacro
'Modification du projet
FermetureReouverture
End Sub

a+,
Tirex28/
 
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,

T'inquiète pas Tirex, j'ai également beaucoup apprécié toutes les remarques de Spitnolan.
Et je pense qu'en alliant les remarques de tout le monde, on a fini par créer quelquechose.
Maintenant, je te remercie également personnellement comme je remercie personnellement Spitnolan. Et bien sûr le Forum aussi :)
Vous m'êtes d'une très grande aide.

Amicalement,

Max
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,
Donc pas besoin de lancer la reprotection alors!!!
Je n'avais pas cherché à voir si ça fonctionnait sans!!
Merci pour l'info.

EDIT:mad:max Je viens de regarder ton fichier intégrant la deprotection, dans ta procedure "fonctionalancer" il est inutile d'inscrire à nouveau le mot de passe du projet. Tout fonctionne tres bien comme ceci:

Amicalement,

Max
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Bonjour le fil, Tirex, Max

Vous avez pris beaucoup d'avance, là, car je n'ai fait que télécharger le dernier fichier de 11h38...

Merci Tirex28 de m’associer à ta réussite, mais c’est bien toi qui a résolu le problème. Si j’ai apporté quelques idées, je n’ai pas été capable de les mettre en œuvre correctement…:(

Mais en premier lieu, ce fil est sympa car il y a un vrai échange avec un demandeur, Max94, qui est très présent, teste, cherche, améliore ce qu’on peut lui proposer et fait profiter tout le monde de ses travaux.

C’est ça, je pense et veux le croire, l’esprit Xld.

Bien cordialement
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re tout le monde,

Avant tout merci spitnolan pour ton message qui fait très plaisir, et je pense que je crois au même esprit Xld.
Il est vrai que ce partage d'information est très important, et si je n'avais pas eu des forums de discussions, aussi bien que celui-ci, m'offrant des réponses à toutes les questions que j'ai pu me poser, je n'en serais pas au niveau ou je suis actuellement.

De plus il est toujours plaisant de se creuser les méninges avec des personnes sympathiques qui ont à coeur ce qu'il font. :)

Bon, passons ce petit intermède.

Tirex, j'ai testé le deuxième fichier qui marche également, mais qui je pense est moins bien que l'autre car trop visible au moment de la fermeture ( écran gris d'Excel ).
Donc je pense que je vais retenir le premier fichier modifié pour la protection.

Je vous envoi dès lors le deuxième fichier avec le nécessaire pour la déprotection (pass: 0000).
Et fini de mettre au point le premier fichier avec des commentaires afin que celui-ci soit clair pour tout ceux qui voudrait l'utiliser.

Amicalement,

Max
 

Pièces jointes

  • FermerOuvrir2.xls
    37 KB · Affichages: 68
  • FermerOuvrir2.xls
    37 KB · Affichages: 67
  • FermerOuvrir2.xls
    37 KB · Affichages: 67
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,

Bon, eh bien, j'ai repris le fichier que je vais utilisé, et je l'ai commenté afin qu'on puisse comprendre le cheminement (D'ailleurs, si vous voulez regarder spitnolan et tirex, voir si c'est ok).

Je fais un rappel pour les personnes qui n'ont pas suivi le fil de la discussion :

Le but de cette manip :
Est de reverrouiller le projet VBA d'un fichier excel en cours d'utilisation lorsqu'il a été nécessaire de déverrouiller ce projet VBA afin de, par exemple, écrire des macros automatiquement via un lancement d'une macro.

Cette manip était possible en réouvrant le fichier excel sur lui même.

Mais pour une certaine taille du fichier excel, celui-ci ne réagit plus de la même façon, et la manip précédente n'est plus possible car elle créé un bug d'excel.

Donc, afin de contourner ce problème, la question s'est posée de savoir comment faire en sorte de fermer et de réouvrir le fichier excel afin que celui-ci prenne en considération la reprotection du projet VBA.

La méthode utilisée est la suivante :

Créer un fichier temporaire
Lui intégrer une macro pour la fermeture et la réouverture du fichier concerné
Supprimer le fichier temporaire.

Comme vous pourriez le remarquer en suivant le fil de cette discussion, par les retournements de situations qu'il y a pu y avoir, cette tache est moins aisée que cela n'y parrait,
Et je remercie tout particulièrement Spitnolan et Tirex pour avoir participé à l'élaboration de cette solution.

Je joins donc le fichier commenté, qui je pense, peut rendre service à plusieurs personnes qui se trouverai dans la même situation que moi.

Spitnolan et Tirex, je vous remercie pour cette aide très précieuse que vous m'avez apporté.
Et bien sûr, n'hésitez pas à me contacter en message privé ou lors d'une autre discussion si vous rencontrez le moindre problème. Ce sera toujours un plaisir de pouvoir vous aider si je le peux :D .
Je garde toujours un oeil sur le forum également pour rendre service bien sûr ;) .

En ce qui concerne le fichier, je compte l'intégrer à mon outil dès que je le peux, en espérant que ceci réglera correctement le problème.
Je vous tiens au courant.

Un Grand Merci au Forum,

Amicalement,

Max
 

Pièces jointes

  • Deprotection-Reprotection.xls
    44 KB · Affichages: 88

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Salut,

Bon, eh bien, je vous avez dis que je vous donnerai des news sur l'intégration du code sur mon outil.
Eh bien tout fonctionne très bien, avec quelques petites amélioration minimes afin qu'il passe complètement inaperçu car mon outil est très lourd, donc le moindre changement d'état se voit!!!
Mais C'est Impec.

Donc merci à tout ceux qui y ont participé.

Amicalement,

Max
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Problème de protection de VB

Bonjour le Forum, Max, Spitnolan, Tyrex, et tous les lecteurs

Je passe après la bataille, étant donné que je viens de répondre à Max dans sa BAL suite à sa demande du 23/08/2007 qui avait pour trait ce sujet, et qu'à cette heure là, Max ne savait pas encore comment ouvrir un Fil de Discussion.

Pour la petite histoire, à l'origine la déprotection du VBproject avec le SendKey était une "cochonnerie" de Laurent Longre (qui dénommait lui-même ce genre de bidullage assez "cochon"), par la suite, bien d'autres l'on appliqué (moi aussi ! lol)

Pour info voici le commentaire du Grand Chef à Trois plumes :
A manipuler avec prudence et en testant bien, c'est toujours presque aussi cochon et je n'ai peut-être pas pensé à gérer tous les cas de figure.
Laurent Longre

Ceci dit, je suis très content que vous ayez trouvé une solution à ce problème de Max, c'est d'autant plus impressionnant avec la ferveur de ce fil de quatre pages.

Par contre en relisant le Fil, plus le synopsis, je me pose une question de fond quand je lis :

Le but de cette manip :
Est de reverrouiller le projet VBA d'un fichier Excel en cours d'utilisation lorsqu'il a été nécessaire de déverrouiller ce projet VBA afin de, par exemple, écrire des macros automatiquement via un lancement d'une macro.


Pourquoi avoir besoin d'écrire des macros dans le Classeur lui-même et ceci pendant l'usage de ce fichier Excel ?

Une raison de base est l'amélioration (où une mise à jour) d'un code sur une masse de fichiers en réseau. On pourrait alors procéder par VBA pour ce faire, en fin de journée lors de l'absence des utilisateurs... Mais pas pendant l'utilisation du classeur lui-même...

Ecrire des macros sur un seul classeur en fonction d'autres macros en cours d'utilisation du même classeur, là franchement soit je suis à coté de la plaque sans avoir plus de détails sur le travail de Max, soit il y a une grosse erreur de conception dans ce projet.

Car pour moi, soit il s'agit de variables que l'on peut stocker où l'on veut (dans une feuille cachée, dans un TXT, dans un Projet Access, etc etc), soit il s'agit de nouveaux Objets (Feuilles, Shapes, ou je ne sais quoi), et là il faut s'orienter peut-être vers un Module de Classe.

Mais bon le principal est de pouvoir arriver à ses fins, mais je tenais juste à signaler que même si avec VBA on arrive presque à faire faire le café à Excel en "CapilloTraction" (j'ai bien rigolé !) il ne faut jamais perdre de vue que la stabilité et pérennité du Projet est aussi à prendre en considération.

Sinon bravo pour la coopération dans ce Fil, c'est bien l'Esprit XLD comme je l'ai connu en 2002.

Bien à vous

@+Thierry
 

jeanpierre

Nous a quitté
Repose en paix
Re : Problème de protection de VB

Bonsoir à tous et à Thierry en particulier,

Pour te saluer, déjà,

L'esprit "2002" n'a pas changé, je pense et je l'espère.

Nous avons, ce jour, un nombre de compétences assez pointues.... mais peut-être nous manque-t'il quelques Maîtres (resalut Thierry)

A te lire plus souvent... ça manque....

Bonne soirée

Jean-Pierre
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Problème de protection de VB

bonjour Jean Pierre, re le Fil, le Forum

Merci de ce gentil petit mot, et oui la vie professionnelle tant que privée fait que, parfois, on ne peut plus être sur tous les fronts.

Je vous prie tous et toutes de m'excuser de mon absence depuis plusieurs mois, voire même une année, mais c'était encore une tournée Rolling Stones et en même temps l'implémentation d'un énorme projet qui n'est pas encore fini à ce jour...

Voili Voilà pourquoi je ne suis pas trop présent...

Bien à vous

@+Thierry
 

jeanpierre

Nous a quitté
Repose en paix
Re : Problème de protection de VB

Re,

Merci de ton retour,

Je pourrai écrire un post de 100, 200 ou 300 lignes,

Je vais le résumer...

Bon courage et bonne réussite....

Pour les Rolling Stones, vraiment pas mon truc et je me suis fait accrocher... Merci aussi pour cela.

Jean-Pierre
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Bonsoir le fil, _Thierry, JeanPierre

Tout d'abord, merci pour ton sympathique passage.
Pourquoi avoir besoin d'écrire des macros dans le Classeur lui-même et ceci pendant l'usage de ce fichier Excel ?
Cette question, je me la suis posée comme toi, mais le challenge à relever a été plus fort... Je me suis toujours demandé ce qui pouvait motiver la modification des macros d'un fichier pendant l'utilisation dudit fichier : Tu apportes probablement une justification dans ton fil. Mais ceci est réservé aux très bons sur de très gros projets.

Et tu repasses quand tu veux!
Bien cordialement
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Salut Thierry, Jean-Pierre, Spitnolan ainsi que tous le Forum.

Je viens juste de voir le message de Thierry (à qui d'ailleurs, je m'excuse de ne pas lui avoir répondu par message privé. Il est vrai que le fait de partager les données est d'autant plus intéressant que de les récupérer (réponse suite au message)).

Maintenant, j'aimerai répondre à la question du pourquoi cette création de macro.

Je créé un outil d'analyse, et j'ai besoin de créer une multitude de graphes d'un coup.
Certains de ces graphes sont sur la même page et par le fait, trop petit pour être exploité en profondeur, alors j'ai cherché à faire en sorte de pouvoir zoomer sur chacun des graphes qui sont sur la feuille (Verrouillée!!) (Pouvant aller jusqu'à 200-300 graphes).

Il fallait que lorsque l'utilisateur clic sur un des graphes, celui-ci soit zoomé.
La méthode que j'ai choisi, qui n'est peut-être pas la meilleure d'ailleurs, est d'affecter une macro ayant les caractéristiques de son graphe à chaque graphes créés. Pour se faire, il fallait donc que je créé les macros en fonction des graphes.

Petit rappel : On ne peut pas distinguer le graphe sur lequel on clic lorsqu'on lui a affecté une macro (Ce qui aurait résolu mes problèmes).

Donc voilà pourquoi il fallait que je déprotège le projet VBA.

D'ailleurs, si quelqu'un a une autre solution pour agrandir un graphique lorsque la feuille où il se trouve est verrouillée, je suis prêt à tout entendre et à tout expérimenter.
Pour moi, c'est la solution qui s'ouvrait à moi à ce moment là!!!

Au plaisir de vous lire à nouveau,

Amicalement,

Max

P.S. : Thierry

Car pour moi, soit il s'agit de variables que l'on peut stocker où l'on veut (dans une feuille cachée, dans un TXT, dans un Projet Access, etc etc), soit il s'agit de nouveaux Objets (Feuilles, Shapes, ou je ne sais quoi), et là il faut s'orienter peut-être vers un Module de Classe.
Comment se servir des Modules de Classe, c'est une partie de vba que je n'ai pas encore exploré. Ca ne fait que quatre mois que j'ai commencé à utiliser VBA, et j'ai tout appris des différents forums (surtout celui-là d'ailleurs :D). Il est vrai que j'ai beaucoup pu exploré excel et VBA à travers tous les problèmes que j'ai pu rencontrer, mais il m'en reste tellement à voir!!!

Donc si quelqu'un veut bien me parler des modules de classes ou encore m'apporter une autre solution au zoom des graphes!! Ce sera toujours un plaisir de voir ça avec vous. :)
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma