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:

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,
Bonjour Mytå,

Mytå : Euh oui, et alors ? Tu as testé avec le code original et ça fonctionne ? Je l'ai trouvé cette nuit aussi mais Il n'y a pas grande différence entre les 2.
Le problème ne se situe pas, à priori, dans la protection mais dans le fait de fermer l'éditeur VBE et le projet car si tu fais l'essai en manuel, tu verras que lorsque tu protèges ton projet VBA mais que tu ne fermes pas le classeur, le code demeure accessible.
C'est dommage on s'est raté de quelques minutes : j'ai décroché à 2h50... On aurait pu en discuter en live.

Max94 : Je n'ai pas le temps de m'en occuper ce matin donc de le vérifier, mais je crains que mes soucis viennent du fait que la fermeture du classeur appelant n'entraine un blocage d'exécution du code.

Cordialement
 

tirex28

XLDnaute Occasionnel
Re : Problème de protection de VB

Bonjour à tous,

Avec le code ci dessous un classeur est capable de se fermer et de se réouvrir, ce qui permet de verrouiller à nouveau le projet.

Les trois procédures doivent prendre place dans le même module.

Le nom du module contenant ces procédures doit correspondre à la constante
NomModule.

Ces procédures ne modifient pas le projet en cours.

Une erreur se produit si on exécute cette procédure alors que le projet est déja verrouillé.

Code:
Sub ReVerrouillerProjet()
    Dim NomFichierModule As String, Temp As Workbook
    Const NomModule As String = "Module1"       'Nom de ce module (à adapter)

On Error GoTo Errh
    With ThisWorkbook                           'Exporte ce module
        NomFichierModule = .Path & "\" & NomModule & ".bas"
        .VBProject.VBComponents(NomModule).Export NomFichierModule
    End With

    With Application                            'Ajoute un classeur temporaire
        .ScreenUpdating = False
        .StatusBar = "Veuillez patienter .."
        .Cursor = xlWait
        .EnableEvents = False
    End With
    Set Temp = Workbooks.Add
    ActiveWindow.Visible = False

    Temp.VBProject.VBComponents.Import NomFichierModule 'Copie ce module dans le classeur temporaire
    Kill NomFichierModule                               'Supprime le fichier .bas
    With ThisWorkbook
        .Save                                                   'Enregistre ce classeur
        Application.Run Temp.Name & "!" & "Pause", .FullName    'Programme la reouverture
        .Close False                                            'Ferme ce classeur
    End With
Exit Sub
Errh:
    MsgBox Err.Description, vbCritical
End Sub

Sub Pause(WbFullName As String)
    Application.OnTime Now + TimeValue("00:00:01"), "'OuvrirClasseur """ & WbFullName & """'"
End Sub
 
Sub OuvrirClasseur(WbFullName As String)
    Workbooks.Open WbFullName   'Ouvre le classeur d'origine
    With Application
        .EnableEvents = True
        .Cursor = xlDefault
        .StatusBar = False
    End With
    ThisWorkbook.Close False    'Ferme le classeur temporaire
End Sub

Cordialement,

Tirex28/
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,

Tirex28 : J'ai essayé d'integrer ton dernier code à mon fichier et voilà ce que j'obtiens via l'antivirus : Virus détecté ; Risque élevé; Nom du virus : Bloodhound.ExcelMacro :eek::confused::eek:

Donc je ne peux tester ta dernière formulation. (Je ne peux pas enregistrer le fichier : j'ai essayé à plusieurs reprises et à chaque fois le PC refuse et m'affiche un message d'alerte.). Je ne comprends pas , mais bon...

Max94 : Je n'ai pas beaucoup avancé (J'ai testé sans enregistrer le fichier temporaire et ça fonctionne dito : Mes macros s'exécutent jusqu'à ce que le fichier principal se ferme. Ensuite plus rien. Donc la méthode Run fonctionne tant que la procédure appelante est vivante mais plus après. Par conséquent, je crains qu'il ne faille en passer par la méthode Tirex. Je vais essayer d'adapter ma version pour qu'elle fonctionne suivant sa méthode.

Cordialement
 
Dernière édition:

tirex28

XLDnaute Occasionnel
Re : Problème de protection de VB

Bonsoir,

J'ai eu ce meme genre de probleme sur un poste utilisant BitDefender et Excel 2002. Personellement j'utilise AVG et Excel 2003 et ca fonctionne tres bien, as tu essayé de désactiver (provisoirement) ton antivirus?

Cordialement,

Tirex28/
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Bonjour le Forum,

Désolé, je n'étais pas là ce week-end!
C'est sympa de continuer de vous poser sur mon cas.

là, je suis en train de regarder ce que Spitnolan m'a envoyé et essayer de le modifier!! On tourne, on tourne!!! On va bien finir par sortir de ce cercle vicieux!!!

Ta méthode, tirex, à l'air intéressante, il faut que je vois ça également!!

Je me repose sur le problème, et vous en fait un topo dès que j'ai fini!!!

Merci encore,

Amicalement,

Max
 
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re tout le monde,

Eh bien j'ai testéla solution de tirex, et j'ai le même pb que spitnolan, je l'ai retappé à la main, même chose, je ne comprend pas, le code est pourtant pas compliqué, je sais pas ce qui le gène!!! M'enfin!!!

Maintenant, en ce qui concerne les modifs de spitnolan, oui, j'ai eu le même problème!!!!C'est l'un ou l'autre!!! j'ai réussi à faire la réouverture du 1er fichier, mais ça déconne grave!!! Je pense que la 1ère version de Tirex va être retenue, car pour le moment c'est celle qui est la moin visible, bien qu'elle le soit beaucoup à mon goût quand même.
Enfin, si quelqu'un à la solution qu'il n'hésite pas à la poster, je prendrai volontié.
Je vais continuer à suivre ce post mais vais essayer de régler un autre problème dû à excel qui est son bloquage lors de la création de graphes multiples, et je pense qu'il y aura un post dessus aussi!!!
VIVE Excel lol :D

Amicalement,
Max.
P.S. Merci encore pour l'aide que vous m'apportez
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,

Tiens, Spitnolan, je te renvoi le fichier avec une partie qui marche, c'est à dire la protection de la macro et l'ouverture du fichier protégé!!!

Si tu veux regardé!! :D
Enfin tu sais, tu peux dormir aussi, lol. A chaque fois que je vois tes messages, tu les a posté dans la nuit lol.

Bon allez à plus, je vous tiens tous au jus si une solution m'arrive.

Amicalement,

Max

P.S. Le code est toujours 0000
 

Pièces jointes

  • TESTMax94-2.xls
    41.5 KB · Affichages: 53

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,

Je n'ai pas voulu te décourager à la lecture de ton 1er post ce matin, mais j'ai tourné et retourné le problème dans tous les sens et je n'ai pas trouvé de solution alternative. J'ai même essayé avec 2 fichiers temporaires qui se repassent la main!

Ce qui est bizarre, c'est que Tirex, dans sa dernière version utilises bien un fichier temporaire même s'il ne lui transfère pas les mêmes macros. C'est vrai que je n'ai pas essayé d'écrire toutes les macros dans le fichier de base et de les transférer en bloc dans le fichier temporaire avant de lui passer la main...

Peut être qu'en laissant reposer...

Cordialement
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,
Pour les deux fichier temporaires, j'ai eu la même idées, et j'ai testé, mais la galère!!!

Ce qui est dommage avec la solution de Tirex, c'est que le code en lui même créé un problème de virus détécté, c'est super bizzar car il n'y a pas de problème dans ce code, je l'ai même retapé main en en retirant une partie, mais même combat!!!

Enfin, tu as vu le dernier fichier que j'ai créé, il pourrait être bien, mais je n'arrive pas à finaliser!!!

Enfin tu as raison, en laissant reposer, peut-être que la solution viendra d'elle même!!! Et moi, de mon côté, je peux peut-être voir avec des gars de mon boulot expert dans le domaine qui vont bientôt rentrer de congé(Veinard!!! Moi j'en ai pas eu cette année :( ).

Je te remercie grandement pour ton aide et ta présence.

Amicalement,

Max
 

tirex28

XLDnaute Occasionnel
Re : Problème de protection de VB

Bonjour,

Ci joint 2 nouvelles versions alternatives:

La premiere version utilise l'approche de spitnolan:
- Enregistrement du classeur initial
- Creation et enregistrement d'un fichier temporaire dans lequel on ecris une procedure Workbook_Open
- Fermeture puis ouverture du classeur temporaire qui via sa procedure workbook_open ferme puis ouvre le classeur initial


La deuxieme version est quasi identique a ce que j'avais proposé plus tot excepté qu'il n'y a plus d'exportation/importation de module entre le classeur initial et le classeur temporaire (Je suppose que c'est ce comportement qui
était susceptible de faire réagir l'antivirus), le code est donc écrit ligne par ligne comme dans la version1.

La démarche est la suivante:
- Création d'un classeur temporaire
- Ajout d'un module standard et écriture d'une procédure destiné à réouvrir le classeur initial
- Enregistrement du classeur initial
- Lancement de la procédure de réouverture avec Application.Run
- Fermeture du classeur initial par lui meme
- Réouverture du classeur initial par le classeur temporaire
- fermeture sans enregistrement du classeur temporaire par lui meme

J'espere que ces acrobaties macrotiques suffiront au bonheur de Max, pour ma part je les mets de coté, ca peut toujours servir.

Bonne nuit à tous,

Tirex28/
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Salut Tirex et le Forum,

Je viens de voir tes messages et PJ, et je regarde ça tout de suite.

Et je t'en donne des news le plus tôt possible!!

Merci de t'être penché sur le cas.

Amicalement,

Max
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re Tirex et le Forum,

Spitnolan, ça peut t'intéresser également!!!!

Enfin, grâce a ton 1er fichier, Tirex, tu m'as permis de faire ma protection, déprotection.

Je t'explique, en fait ce que tu m'avais apporté permettait de fermer et ouvrir le fichier sans problème, mais lorsque j'y intégrai la déprotection et la protection, ton code ne me permettait pas de reprotéger mon fichier.
Après plusieurs permutations et des ontime bien placé, j'ai réussis à trouver la bonne combinaison pour que le fichier se reprotège!!!
La classe, donc Tirex un grand merci à toi pour ce code!Il est passé en haut de la liste des codes que je vais intégrer.

Maintenant, je vais tester l'autre code pour voir ce qu'il peut m'apporter, mais là on tiens le bon bout!!!

Je joins au forum ce fichier tout fraîchement pondu!! :D
Tirex, tout le mérite t'en reviens.

Merci beaucoup.
Bon je regarde l'autre

Amicalement,
Max
 

Pièces jointes

  • FermerOuvrir1.xls
    46.5 KB · Affichages: 59
  • FermerOuvrir1.xls
    46.5 KB · Affichages: 59
  • FermerOuvrir1.xls
    46.5 KB · Affichages: 61
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Bonjour,

Puisque tu as réussi à combiner les deux codes, je vais regarder ton fichier en premier, d'autant que j'ai un pb avec celui de Tirex que je n'ai pas encore résolu : il ne veut pas me passer l'instruction :
Code:
.InsertLines X + .CountOfLines, Instructions(X)
en pas à pas ou lorsque j'envoie la macro depuis l'éditeur VBE...

Bien cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 182
Messages
2 086 001
Membres
103 084
dernier inscrit
Hervé30120