Erreur d'exécution de Macro VBA quand feuille Excel protégée
4 réponses
CHRIS
Bijour,
Voici un exemple de macro qui s'ex=E9cute bien s=FBr sans PB=20
quand la feuille n'est pas prot=E9g=E9e.
Si on prot=E8ge la feuille Excelon a alors :
"erreur d'ex=E9cution '1004'
Impossible de d=E9finir la propri=E9t=E9 ColorIndex de la classe=20
Interior."
Je d=E9bute en VBA. :o( Avez vous une explication ?
Cdlt
CHRIS
***************************
Sub test_protection()
'
'les cellules A1:B3 ne sont pas vides et ne sont ni _
verrouill=E9es, ni masqu=E9es
=20
=20
Range("A1:B3").Select
=20
Selection.Font.ColorIndex =3D 6
Selection.Interior.ColorIndex =3D 1
Selection.Font.Bold =3D True
Selection.Font.Size =3D 20
Range("b6").Select
=20
End Sub
*****************************
Hi Philippe, Non, les cellules ne sont ni vides, ni verrouillées (donc pas protégées), ni masquées : j'ai fait cela directement dans la feuille Excel. Tu peux essayer dans une nouvelle feuille, c'est rapide. Si j'ajoute la ligne que tu indiques, on a erreur d'exécution : Unprotect n'est pas pris en compte par l'objet Range. En revanche, je pense qu'on est obligé de passer par la déprotection de la feuille puis exécution des instructions voulues (!) suivie de la re-protection de la feuille. A MOINS QUE QUELQU'UN AIT UNE AUTRE IDEE ?
Merci quand même ; ça m'a permis d'apprendre "Unprotect" ! Cdlt CHRIS
Merci
-----Message d'origine----- Salut,
je pense qu'il suffit juste de déprotéger les cellules ( Range("A1:B3").Unprotect) avant d'exécuter ce code
Philippe.
-----Message d'origine----- Bijour,
Voici un exemple de macro qui s'exécute bien sûr sans PB quand la feuille n'est pas protégée. Si on protège la feuille Excel on a alors :
"erreur d'exécution '1004' Impossible de définir la propriété ColorIndex de la classe
Interior."
Je débute en VBA. :o( Avez vous une explication ? Cdlt
CHRIS
*************************** Sub test_protection() ' 'les cellules A1:B3 ne sont pas vides et ne sont ni _ verrouillées, ni masquées
Hi Philippe,
Non, les cellules ne sont ni vides, ni verrouillées (donc
pas protégées), ni masquées : j'ai fait cela directement
dans la feuille Excel.
Tu peux essayer dans une nouvelle feuille, c'est rapide.
Si j'ajoute la ligne que tu indiques, on a erreur
d'exécution : Unprotect n'est pas pris en compte par
l'objet Range.
En revanche, je pense qu'on est obligé de passer par la
déprotection de la feuille puis exécution des instructions
voulues (!) suivie de la re-protection de la feuille.
A MOINS QUE QUELQU'UN AIT UNE AUTRE IDEE ?
Merci quand même ; ça m'a permis d'apprendre "Unprotect" !
Cdlt
CHRIS
Merci
-----Message d'origine-----
Salut,
je pense qu'il suffit juste de déprotéger les cellules (
Range("A1:B3").Unprotect) avant d'exécuter ce code
Philippe.
-----Message d'origine-----
Bijour,
Voici un exemple de macro qui s'exécute bien sûr sans PB
quand la feuille n'est pas protégée.
Si on protège la feuille Excel on a alors :
"erreur d'exécution '1004'
Impossible de définir la propriété ColorIndex de la
classe
Interior."
Je débute en VBA. :o( Avez vous une explication ?
Cdlt
CHRIS
***************************
Sub test_protection()
'
'les cellules A1:B3 ne sont pas vides et ne sont ni _
verrouillées, ni masquées
Hi Philippe, Non, les cellules ne sont ni vides, ni verrouillées (donc pas protégées), ni masquées : j'ai fait cela directement dans la feuille Excel. Tu peux essayer dans une nouvelle feuille, c'est rapide. Si j'ajoute la ligne que tu indiques, on a erreur d'exécution : Unprotect n'est pas pris en compte par l'objet Range. En revanche, je pense qu'on est obligé de passer par la déprotection de la feuille puis exécution des instructions voulues (!) suivie de la re-protection de la feuille. A MOINS QUE QUELQU'UN AIT UNE AUTRE IDEE ?
Merci quand même ; ça m'a permis d'apprendre "Unprotect" ! Cdlt CHRIS
Merci
-----Message d'origine----- Salut,
je pense qu'il suffit juste de déprotéger les cellules ( Range("A1:B3").Unprotect) avant d'exécuter ce code
Philippe.
-----Message d'origine----- Bijour,
Voici un exemple de macro qui s'exécute bien sûr sans PB quand la feuille n'est pas protégée. Si on protège la feuille Excel on a alors :
"erreur d'exécution '1004' Impossible de définir la propriété ColorIndex de la classe
Interior."
Je débute en VBA. :o( Avez vous une explication ? Cdlt
CHRIS
*************************** Sub test_protection() ' 'les cellules A1:B3 ne sont pas vides et ne sont ni _ verrouillées, ni masquées
En revanche, je pense qu'on est obligé de passer par la déprotection de la feuille puis exécution des instructions voulues (!) suivie de la re-protection de la feuille.
Pas obligé... A mettre dans le module de la feuille (ou, en adaptant, dans le ThisWorkbook)
Private Sub Worksheet_Activate() ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True End Sub
AV
En revanche, je pense qu'on est obligé de passer par la
déprotection de la feuille puis exécution des instructions
voulues (!) suivie de la re-protection de la feuille.
Pas obligé...
A mettre dans le module de la feuille (ou, en adaptant, dans le ThisWorkbook)
Private Sub Worksheet_Activate()
ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True
End Sub
En revanche, je pense qu'on est obligé de passer par la déprotection de la feuille puis exécution des instructions voulues (!) suivie de la re-protection de la feuille.
Pas obligé... A mettre dans le module de la feuille (ou, en adaptant, dans le ThisWorkbook)
Private Sub Worksheet_Activate() ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True End Sub
AV
CHRIS
Ne peux pas tester immédiatement mais merci à AV pour cette réponse. Have a good nigh CHRIS
Ne peux pas tester immédiatement mais merci à AV pour cette réponse.
Have a good nigh
CHRIS