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,

Ok, j'ai compris... La rédaction de macros a lieu lors de l'utilisation du fichier par n'importe quel utilisateur.
Je n'ai pas la réponse à ta question mais une méthode de contournement diabolique : Tu crées un fichier provisoire dans lequel tu inscrit une macro que tu lances depiuis ton fichier NomSauveOpen qui va fermer ton fichier NomSauveOpen en l'enregistrant puis le réouvrir en lançant une macro qui va détruire le fichier provisoire...
Diabolique non ?

Cordialement
Edit : pas vu ta pièce jointe... je vais regarder
Euh... enfin non! car je n'autorise pas le lancement des macros tant que je n'ai pas vu le code par souci de sécurité. Et comme ton code est protégé par mot de passe...(Je sais, c'est pour les besoins de la démo, mais je ne déroge pas à cette règle.)
 
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,
mot de passe c'est 0000, celui qu'il y avait marqué dans le prog
Mais tu as raison de refuser d'activer les macro sans en être informé!!!

Bon je médite sur ta solution!!!

P.S. : En ce qui concerne le fichier que je t'ai envoyé, tu verras que la solution que je propose et dont je dis qu'elle ne marche pas marche pour le fichier.
Mais en fait c'est lorsque le fichier est plus volumineux qu'il a commencé à me poser des problèmes!!!

Tout pour emmerder quoi!!! (Excuse le vocabulaire):D

Cordialement,
Max

P.S.2 : Le mot de passe, c'était pour que la protection fonctionne!!!
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

RE,

Merci pour le fichier test. effectivement ça fonctionne et n'a bien entendu pas le même résultat.
Toutefois, lors de mon premier essai j'avais obtenu la demande de mot de passe pour accéder à VBE dans les 2 cas. Je ne sais pas ce que j'avais fait pour ça... Si je trouve, je te dis, mais pas de faux espoirs : ce n'était probablement qu'une fausse manip.

Cordialement
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,
J'y avais pensé mais pas à font, et là tu m'as fait me poser dessus!!! :D
C'est super tordu le truc,
Dc en récapitulant, il faut :
1. A la fin créer un fichier vierge
2. Lui créer une macro evenementielle sur sa fermeture :
2.1 fermer le 1er fichier
2.2 le réouvrir
3. Demander la fermeture du fichier créé
4. Supprimer le fichier à l'ouverture du 1er si il existe!!
Ainsi, le 1er fichier créé sa propre fermeture et (surtout) ouverture en fermant l'autre fichier.

LOL :D C'est de la méchante bidouille ça, mais avec quelques moyens pour cacher tout ça, l'utilisateur n'y verra peut-être que du feu!!!

:D, Et pourquoi pas!!! Je test ça dès que j'ai un peu de temps car j'ai plusieurs réunion en ce moment, et je tiens le forum au courant.

Merci pour cette lueur d'espoir Spitnolan08

Cordialement,

Max

P.S: Si quelqu'un à d'autres solution, n'hésitez pas à me les faire parvenir car celle là est tiré par les cheveux quand même!!! (Mais je kiff!!! Au moins juste pour voir)
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Merci beaucoup Spitnolan08,

Là je ne vais plus pouvoir bosser dessus jusqu'à demain, je serais là demain et je testerai la solution que tu m'apportes.
Je te souhaite une bonne soirée

Cordialement,
Max
P.S.: Ne te prend pas trop la tête dessus, moi ça fait une semaines déjà que j'ai ce problème, et je ne l'ai toujours pas résolu, a priori, c'est un bug d'excel d'après ce que j'ai pu voir sur le site microsoft!! Mais quand je veux trouver j'arrive pas à laisser tomber!!!

Allez bonne soirée
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,

Si je t'ai proposé cette solution alternative capilotractée comme dirait monCherAmi... c'est que tu me sembles avoir toutes les connaissances pour le faire. Par contre, bien que j'ai déjà réalisé des trucs similaires, je n'ai jamais été jusqu'à créer une macro dans un fichier provisoire (mais je ne vois pas pourquoi on ne pourrait pas le faire! Lol!). Remarques tu peux aussi, si tu travailles en réseau, créer un fichier "provisoire" fixe auquel fera appel ta macro lorsqu'elle en aura besoin et à condition que plusieurs utilisateurs n'en aien t pas besoin au même moment...

Pour en revenir à ta récap :
1. créer un fichier vierge "Provisoire"
2. Dans ce fichier provisoire, Inscrire une macro pour fermer le fichier NomSauveOpen
2.1 fermer le fichier NomSauveOpen à partir de cette macro du fichier "Provisoire" déclenchée par le code inscrit dans le fichier source NomSauveOpen
2.2 réouvrir NomSauveOpen à partir de la macro du fichier "Provisoire"
3. Supprimer le fichier "provisoire" par son propre code
C'est de la méchante bidouille ça, mais avec quelques moyens pour cacher tout ça, l'utilisateur n'y verra peut-être que du feu!!!
Pour la méchante bidouille : oui. Pour le reste, peut être pas quand même car l'écran va forcément clignoter... Si tu aperçois une page blanche à un moment, il faudrait penser à copier la feuille active dans le fichier provisoire pour donner l'illusion d'un simple clignotement sans plus...

Cordialement
 

tirex28

XLDnaute Occasionnel
Re : Problème de protection de VB

Bonsoir,

Une "méchante bidouille" sans créer de fichier temporaire, à exécuter après la protection du projet.
Code:
Sub Reouverture() 
    ThisWorkbook.Save
    Application.OnTime Now + TimeValue("00:00:01"), "NeFaisRien"
    ThisWorkbook.Close
End Sub

Private Sub NeFaisRien()
    Application.StatusBar = False 'ou autre instruction "bidon"
End Sub

Cordialement,

Tirex28/
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Bonsoir Tirex28,

Il y a un truc que je ne comprends pas dans ta bidouille : Tu fermes le fichier mais ne le réouvre pas. Sauf si j'ai raté un truc... (Possible à cette heure!) Or Max94 ne veut justement pas le fermer ou bien il faut trouver une solution pour le réouvrir automatiquement.

Bonne nuit
Cordialement
 

tirex28

XLDnaute Occasionnel
Re : Problème de protection de VB

Bonsoir,

Avec OnTime Excel mémorise aussi le nom complet du fichier contenant la macro.

Au moment de la lancer, si le fichier est fermé, Excel l'ouvre.

Le seul ennui de cette méthode c'est que si le fichier est renommé ou déplacé entretemps Excel affiche un message "Impossible de trouver la macro ...".

Mais avec un intervalle d'une seconde ca devrait passer.

Bonne nuit,

Tirex28/
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Salut le forum, Spitnolan08, tirex28,

Désolé de vous avoir fait bosser jusqu'à 2h40 alors que moi je n'étais pas là!!!
Merci de vous pencher sur mon cas.

Tirex, je vais voir ce que ton bout de code peut m'apporter!! Ca à l'air intéressant.
Je m'y atèle!!!

Cordialement,

Max
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Salut tout le monde,
eh bien j'ai pu tester les version de tirex et de spitnolan.

Pour le moment, je reste sur celle de tirex bien qu'il y ait un problème d'affichage, excel qui ferme le classeur!!! Mais ça marche, c'est le principal.

En ce qui concerne la solution de spitnolan, elle pourrait être géniale, on ne voit pas de changement d'état(avec un simple screenupdating = false), et le passage est rapide!!

Mais il y a un Ic!! Le fichier ne se ferme pas et dc toujours ce problème de protection qui ne se réactive pas!!! C'était pour moi une très bonne solution, quasi invisible.

Maintenant, je vais préparer un petit fichier excel pour celui qui veut voir si il ne trouve pas une solution pour le fait qu'il ne veut pas se fermer (Je pense qu'il est dans une macro, et qu'il empêche de se faire fermer par un autre fichier mais, alors comment le sortir de sa macro à partir du fichier temporaire!!!)
Je tourne en rond quoi!!!

S'il vous plaît le forum faite moi un miracle, je suis si proche du but et pourtant!!!

Amicalement,
Max
 
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

re,
Voilà, pour le fichier temporaire, vous pouvez le mettre ou vous voulez!!!

En ce qui concerne le mot de passe c'est 0000

Voilà!!

Merci encore au forum pour cette aide précieuse.

Amicalement,

Max
 

Pièces jointes

  • TEST2.xls
    44 KB · Affichages: 83
  • TEST2.xls
    44 KB · Affichages: 79
  • TEST2.xls
    44 KB · Affichages: 79

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,

Le 1er était celui de Spitnolan
Et voici le deuxième avec l'aide de Tirex
Ca se dépasse vite les 48 Ko!!! :D

Amicalement,
Max

P.S. le code est toujours le même!!
 

Pièces jointes

  • TEST.xls
    38.5 KB · Affichages: 62
  • TEST.xls
    38.5 KB · Affichages: 65
  • TEST.xls
    38.5 KB · Affichages: 64

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,

J'ai essayé d'adapter ma vision des choses à ton code mais, j'ai le problème inverse de toi : Le classeur se ferme mais ne se réouvre pas… A nous deux on devrait y arriver!;)

Nota 1 : il y a certaines de tes instructions qui ne servent à rien pour ma version mais je n'ai pas fait le ménage
Nota 2 : Mon idée de départ consistait à ne pas enregistrer le fichier temporaire. Je ne l'ai pas conservée, car je croyais que c'était la source de mes ennuis, mais je pense que c'est réalisable. Dans ce cas, il n'est plus besoin que de le fermer à la fin de la procédure sans le sauvegarder.
Nota 3 : Mon problème réside dans l'appel des procédures depuis un classeur distant. J'ai testé sur des fichiers simples et ça fonctionne correctement mais pas là... Je ne sais pas pourquoi...:mad:
Nota 4 : Pour info, il y a une subtilité dans le nom des classeurs avec la méthode Run : Si classeur de type : Tempo.xls : Tempo.xls! mais avec un nom de type : TestMax94-2.xls : 'TestMax94-2.xls'!

Bonne nuit
Cordialement
 

Pièces jointes

  • TESTMax94-2.zip
    17.5 KB · Affichages: 27
Dernière édition:

Discussions similaires