Macro excel pour protéger des colonnes saisissables

Beginner

XLDnaute Nouveau
Bonjour,

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

En effet, j'ai crée un exemple avec classeur avec 2 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 pour l'utilisateur sauf sur 2 colonnes (en jaune dans mon fichier) 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. Comment cela se fait il ??

Voici ma macro :

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

Je souhaite protéger toutes les feuilles, permettre le calcul et de rendre saisissable les 2 colonnes qui sont en jaunes bien qu'il y a des calculs dedans..

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

Pièces jointes

  • TEST.xls
    19 KB · Affichages: 79
  • TEST.xls
    19 KB · Affichages: 84
  • TEST.xls
    19 KB · Affichages: 88

kllmoon

XLDnaute Occasionnel
Re : Macro excel pour protéger des colonnes saisissables

Par manque de temps je ne peux regarder en détail mais une chose que je vois c'est que ta macro change de feuille sans remettre la protection. Elle enleve sur la feuille 1, passe à la feuille 2, ne l'enleve pas et la met sur la feuille 2. Ça peut expliquer pourquoi ça plante.
 

kllmoon

XLDnaute Occasionnel
Re : Macro excel pour protéger des colonnes saisissables

Finalement j'ai pris 2 minutes pour réviser ton code. J'ai changé la valeur de i sur la première feuille 1 car je ne crois pas que les lignes 1 et 2 doivent êtres inscrits dans ton code. Corrige moi si je me trompes.

Code:
Sub Macro1()

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

ActiveSheet.Unprotect
Sheets("Feuil1").Select
     
    i = 3                '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
ActiveSheet.Protect
Sheets("Feuil2").Select
ActiveSheet.Unprotect
     
    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

End Sub

Tu peux rajouter
Sheets("Feuil1").Select (ou autre Feuil que tu veux que la macro sélectionne à la fin de son exécution)
avant le
End Sub
pour une meilleure utilisation.
 

Discussions similaires

Réponses
6
Affichages
275

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux