Macro : comment protéger une feuille contenant des formules

Bonjour,

Je me permets de poster de solliciter une aide pour un problème de macro excel.

En effet, j'ai crée une classeur avec plusieurs onglets. Chaque onglet dispose d'un tableau identique qui contient parfois des colonnes avec des formules. En fait, la feuille doit être protégée afin qu'elle ne puisse pas etre saisissable sauf sur 2 colonnes dont 1 qui contient une formule dedans.

J'ai l'impression que la macro exécute bien le calcule mais ne protège pas le classeur et le fait planter. Ce code marche lorsque j'ai 1 seul onglet mais pas avec plusieurs onglet.. comment cela se fait il ??

Voici la macro que j'ai fait :

Sub Macro1()

Dim i As Integer 'premiere ligne

Dim j As Integer 'premiere colonne

ActiveSheet.Unprotect Password:=""

Sheets("Feuil1").Select

i = 1 'premiere ligne sur laquelle on commence dans le tableau

j = 0 'on initialise la premiere colonne

While Cells(i, 2) <> ""

'Total 1

Cells(i, 3).Locked = False

Cells(i, 3) = "=RC[-2]-RC[-1]"

Cells(i, 3).Locked = True

'Total 2

Cells(i, 5).Locked = False

Cells(i, 5) = "=RC[-2]+RC[-1]"

Cells(i, 5).Locked = True

'On passe à la ligne suivante

i = i + 1

Wend

Sheets("Feuil2").Select

i = 3

j = 0

While Cells(i, 2) <> ""

'Total 1

Cells(i, 3).Locked = False

Cells(i, 3) = "=RC[-2]-RC[-1]"

Cells(i, 3).Locked = True

'Total 2

Cells(i, 5).Locked = False

Cells(i, 5) = "=RC[-2]+RC[-1]"

Cells(i, 5).Locked = True

'On passe à la ligne suivante

i = i + 1

Wend

ActiveSheet.Protect Password:=""

End Sub

Si quelqu'un aurait une idée, merci d'avance pour la réponse

Salut le forum

Lililounette comme nouveau membres

Les balises code (merci de les employer)

Sub Macro1() 

Dim i As Integer 'premiere ligne 
Dim j As Integer 'premiere colonne 

ActiveSheet.Unprotect Password:="" 

Sheets("Feuil1").Select 

i = 1 'premiere ligne sur laquelle on commence dans le tableau 
j = 0 'on initialise la premiere colonne 

While Cells(i, 2) <> "" 

'Total 1 
Cells(i, 3).Locked = False 
Cells(i, 3) = "=RC[-2]-RC[-1]" 
Cells(i, 3).Locked = True 

'Total 2 
Cells(i, 5).Locked = False 
Cells(i, 5) = "=RC[-2]+RC[-1]" 
Cells(i, 5).Locked = True 

'On passe à la ligne suivante 
i = i + 1 

Wend 

Sheets("Feuil2").Select 

i = 3 
j = 0 

While Cells(i, 2) <> "" 

'Total 1 
Cells(i, 3).Locked = False 
Cells(i, 3) = "=RC[-2]-RC[-1]" 
Cells(i, 3).Locked = True 

'Total 2 
Cells(i, 5).Locked = False 
Cells(i, 5) = "=RC[-2]+RC[-1]" 
Cells(i, 5).Locked = True 

'On passe à la ligne suivante 
i = i + 1 

Wend 

ActiveSheet.Protect Password:="" 

End Sub 

Tu déprotèges la feuille active et tu protèges la feuille 2...

La raison de ton Plantage.

A adapter

Sub Voyons()
Dim Feuille As Object
For Each Feuille In Sheets
Feuille.Unprotect Password:=""
Next Feuille
'Ton code de traitement
For Each Feuille In Sheets
Feuille.Protect Password:=""
Next Feuille
End Sub

Mytå

Bonjour et merci pour la réponse rapide !

Par contre, j'ai un soucis lorsque je met ce code.. ca me sort "variable attendue", qu'est ce que cela signifie ?

On dirait que ca marche au final, merci beaucoup !!!

Rechercher des sujets similaires à "macro comment proteger feuille contenant formules"