Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2011, 12h21   #1
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
Par défaut Lancer macro après déprotection

Bonjour,

Je possède un fichier Excel avec une feuille protégée par MdP.
Certains utilisateurs le connaissent afin d'apporter des modifications au fichier.
Cependant lorsqu'ils le reprotège, certains changent le MdP d'origine.

Je souhaiterai donc exécuter une macro après la déprotection de la feuille qui bloquerai le menu Outil/Protection. Avec ceci je mettrai une macro pour reproteger la feuille avant fermeture du fichier.
Cependant :
1 - Je ne sais pas comment exécuter une macro après déprotection de la feuille.
2 - Je ne sais pas non plus comment bloquer le fait de réactiver le MdP.

Merci par avance d'essayer de m'aiguiller.
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 12h46   #2
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 257
Points : 2 980
Points : 2 980
Bonjour,
C'est risqué et incertain.
De plus je ne crois pas qu'il existe un évènement qui te permette de détecter en VBA la Déprotection de la feuille.

Il est préférable d'essayer d'adapter ta protection pour qu'elle autorise les modifications nécessaires, quitte à ce que certaines modifications soient faites via VBA qui se chargerait de manière invisible de :
- déprotéger
- modifier
- reprotéger

Pour cela il faudra protéger ton code VBA (ca vaut ce que cela vaut) et SURTOUT, changer le mot de passe de protection de ta feuille.

mais, j'ignore si c'est possible pour toi et/ou adapté à tes besoins.
__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 14h52   #3
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
J'ai trouvé pour la question 2. Pour masquer la barre en haut, j'ai mis :
Code :
Application.CommandBars("Worksheet Menu Bar").Enabled = False
Comme ceci l'utilisateur ne peut plus reprotéger la feuille.
Toujours pas d'info pour la question 1 de mon côté...

J'ai même trouvé mieux :

Code :
1
2
3
4
5
6
7
8
Dim x
On Error Resume Next
For x = 1 To Application.CommandBars.Count
With Application.CommandBars(x)
.Reset
.Enabled = False
End With
Next x
C'est exactement ce qu'il me fallait pour cette partie.
Je cherche toujours pour la 1ière.

PS : Penser à réactiver le menu à la fin sinon l'utilisateur ne va pas être content à l'ouverture de son prochain fichier Excel
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 15h39   #4
Membre régulier
 
Inscription : décembre 2007
Messages : 73
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 73
Points : 73
Points : 73
Bonjour,

comme dit plus haut, il faut "bâtir" une petite usine à gaz pour protéger déprotéger via VBA... avec toutes les réserves sur la protection dans excel (très très relative la protection).

Le principe:

1) A chaque fermeture du fichier une macro se lance pour (re)protéger le fichier (Autoclose).

2) Pour l'ouverture, prévoir une feuille (Mot de passe, par exemple), pour laquelle la valeur saisie en A1 (par exemple) lancera une macro de "déprotection" du fichier (la déprotection peut être relative aux zones etc... à modifier)...

La protection déprotection se faisant de façon invisible par VBA (comme dit dans le post plus haut).

Il suffira de distribuer "le code" (la valeur à entrer en A1 de la feuille prévue à cet effet).

3) Pour que cela est une chance de fonctionner, il faudra (autre morceau de l'usine à gaz) obliger l'utilisation des macros.

4) Et il faudra protéger VBA...

A+
D D Du 06
D-D-Du-06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 16h03   #5
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
Je suis effectivement parti là-dessus.
Un Userform qui demande le mot de passe. Si celui-ci est bon, la protection est enlevée via les macro. S'il est incorrect au bout de 3 essais, le fichier se ferme.
Le menu principal est désactivé de façon à ce qu'aucun utilisateur ne puisse changer la protection. Celle-ci est réactivée à la fermeture du fichier.

Je vous tiens au courant si cela fonctionne.
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 17h33   #6
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Pour ma part, je pense qu'il vaudrait mieux que tu protèges ta feuille par un mot de passe que toi seul connait. Et par contre, tu fais une macro qui demande un mot de passe et qui change la propriété Locked des cellules concernées pour les utilisateurs qui feront des modifications.

Parce que pour ce qui est de cacher le menu, l'utilisateur pourra toujours le réactiver s'il le souhaite.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 15h51   #7
Futur Membre du Club
 
Homme
Technicien Méthode
Inscription : mars 2011
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien Méthode

Informations forums :
Inscription : mars 2011
Messages : 52
Points : 16
Points : 16
J'ai réussi à faire ce que je voulais.
Merci quand même.
Nikodemus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h38.


 
 
 
 
Partenaires

Hébergement Web