Interruption de macro pour contourner mot de passe...

djodjodjo

XLDnaute Occasionnel
Bonjour le forum :)

J'ai une petite question pour vous : j'ai créé un classeur Excel entièrement vérouillé et protégé par mot de passe (et j'ai aussi protégé mes macros par mot de passe) et effectivement on ne peut rien modifier manuellement.

Par contre j'ai créé des macros qui ont besoin d'enlever cette protection pour modifier la feuille donc j'ai mis ceci en début de chaque macro :
Code:
'On enlève la protection de la feuille
If Sheets("Projets").ProtectContents Then
Sheets("Projets").Unprotect Password:="xxxx"
End If

et ceci en fin de chaque macro :
Code:
Workbooks(Classeur).Sheets("Projets").Protect Password:="xxxx"

Ca marche bien.. sauf que si jamais je clique sur un bouton associé à une des macros, et que je fais volontairement "Ctrl+Pause" ça interrompt l'exécution de la macro en cours de route (après la déprotection et avant la reprotection) et du coup la feuille n'est plus protégée.

Comment éviter ça ?

Merci d'avance !
 

djodjodjo

XLDnaute Occasionnel
Re : Interruption de macro pour contourner mot de passe...

Peut-être en faisant ça

Code:
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
MsgBox "This may take a long time: press ESC to cancel"
For x = 1 To 1000000    ' Do something 1,000,000 times (long!)
    ' do something here
Next x

handleCancel:
If Err = 18 Then
Workbooks(Classeur).Sheets("Projets").Protect Password:="xxxx"
    MsgBox "You cancelled"
End If

Je vais tester et je vous redis
 

Victor21

XLDnaute Barbatruc
Re : Interruption de macro pour contourner mot de passe...

Bonjour.

Voir l'aide VBA sur protect, et en particulier userinterfaceonly, qui évite de déprotéger pour exécuter les macros.

Edit : Bonjour, DranreB.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Interruption de macro pour contourner mot de passe...

Boujour.
Laisser la protection, la remettre même impérativement par une Workbook_Open dans ThisWorkbook, mais avec le paramètre UserInterfaceOnly:=True
Cordialement.

Edit: Bonjour Victor21, je pensais bien que je serais doublé !
 

djodjodjo

XLDnaute Occasionnel
Re : Interruption de macro pour contourner mot de passe...

Ha ouais excellent! En plus je peux virer toutes mes protections/déprotections à l'intérieur de mes macros maintenant, du moment que je protège dans le workbook_open ?

Sinon ma solution fonctionnait aussi mais bon c'est + laborieux !

Merci :)
 

Discussions similaires

Statistiques des forums

Discussions
312 791
Messages
2 092 137
Membres
105 234
dernier inscrit
mimilk