Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment éxécuter une macro sur des cellules verrouiller?

3 réponses
Avatar
albadgones68
Bonjour,
Je vient solicité votre aide sur excel,
Voila j'ai créé un tableau de donnés. Et ensuite fais une macro pour le
triage de ces donnés. Une fois le tableau rempli, j'ai verrouiller les
cellules que je veut bloquer en écriture. Mais une fois sa fais, la macro ne
marche plus puisqu'elle concerne les cellules verouillées. Comment faire pour
régler ce problème.

Merci d'avance

3 réponses

Avatar
FdeCourt
Salut,

Protège ta feuille par macro en mettant ce paramètre :
UserInterfaceOnly:=True, par exemple :
ActiveSheet.Protect UserInterfaceOnly:=True

Cordialement,

F.
Avatar
michdenis
Bonjour,

Pour pouvoir exécuter des macros sur des feuilles de calcul protégées,
tu dois utiliser l'événement Workbook_Open situé dans le ThisWorkbook
de ton classeur. La procédure ressemble à ceci :

Dans le ThisWorkbook
Évidemment, tu dois remplacer "NomDeLaFeuille" et "MotDePasse"
par ceux de ton application.
Comme la macro s'exécute à l'ouverture du fichier, ferme et rouvre
à nouveau pour obtenir le résultat désiré.
Dans cette procédure, c'est le paramètre UserInterfaceOnly qui fait toute
la différence... voir l'aide d'Excel sur le sujet
'------------------------------------------
Private Sub Workbook_Open()

With Worksheets("NomDeLaFeuille")
.Protect "MotDePasse", DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
End With

End Sub
'------------------------------------------

Une autre alternative serait d'utiliser la macro suivante dans
un module standard :

L'avantage de celle-ci, c'est qu'une macro "Auto_Open"
s'exécute toujours à l'ouverture du fichier et elle n'est pas
soumise à la désactivation des macros événementielles
lorsque l'on utilise cette ligne de code par exemple :
Application.EnableEvents = False
En conséquence, elle s'exécute toujours sauf si on désactive
l'usage des macros à l'ouverture du classeur.
'------------------------------------------
Sub Auto_Open()

With Worksheets("NomDeLaFeuille")
.Protect "MotDePasse", DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
End With

End Sub
'---------------------------------------------


"albadgones68" a écrit dans le message de groupe
de discussion :
Bonjour,
Je vient solicité votre aide sur excel,
Voila j'ai créé un tableau de donnés. Et ensuite fais une macro pour le
triage de ces donnés. Une fois le tableau rempli, j'ai verrouiller les
cellules que je veut bloquer en écriture. Mais une fois sa fais, la macro ne
marche plus puisqu'elle concerne les cellules verouillées. Comment faire pour
régler ce problème.

Merci d'avance
Avatar
enckys
Le lundi 29 Mars 2010 à 15:31 par albadgones68 :
Bonjour,
Je vient solicité votre aide sur excel,
Voila j'ai créé un tableau de donnés. Et ensuite fais une
macro pour le
triage de ces donnés. Une fois le tableau rempli, j'ai verrouiller les
cellules que je veut bloquer en écriture. Mais une fois sa fais, la
macro ne
marche plus puisqu'elle concerne les cellules verouillées. Comment faire
pour
régler ce problème.

Merci d'avance


Merci michdenis pour ton temps et ces quelqpues lignes qui m'ont sauvé :)

Private Sub Workbook_Open()

With Worksheets("NomDeLaFeuille")
.Protect "MotDePasse", DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
End With

End Sub

Regards
enckys