Comment éxécuter une macro sur des cellules verrouiller?
3 réponses
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.
Protège ta feuille par macro en mettant ce paramètre : UserInterfaceOnly:=True, par exemple : ActiveSheet.Protect UserInterfaceOnly:=True
Cordialement,
F.
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
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" <albadgones68@discussions.microsoft.com> a écrit dans le message de groupe
de discussion : DA9642EE-2100-42D4-A911-42E485E7F33C@microsoft.com...
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.
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
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
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
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