EXCEL: protection feuilles excel

Fermé
slamdunk77 - 9 nov. 2008 à 16:40
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 - 10 nov. 2008 à 08:39
Bonjour à tous,

voila mon petit soucis, dans mon ficher excel j'ai 240 feuilles et je voudrais les protéger.

Sauf que pour ma feuille 1 je protège toute ma feuille (donc ça j'ai su le faire) mais après de la feuille 2 à 240 je voudrais protéger seulement que quelques colonnes et je ne sais comment faire cela, mise à part le faire une par une ( mais si je pouvais éviter!).

Alors si quelqu'un a une idée, je suis preneur.

Merci a tous, @+
A voir également:

15 réponses

gepsyc Messages postés 68 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 18 juillet 2013 11
9 nov. 2008 à 17:55
Pour tous vos problèmes avec Excel, un site à ne pas manquer :

https://forum.excel-pratique.com/
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
9 nov. 2008 à 18:07
Gepsyc

Donc, ici, on est des cons ?
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
9 nov. 2008 à 18:28
Bonjour Michel

suite à ton coup de gueule bien compréhensible, et par curiosité, je suis allé voir son forum

y pas à fouetter un chat

Amicalement
@ bientôt sur le Forum
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
9 nov. 2008 à 17:13
Salut,

En fait par défaut toutes les cellules des feuilles sont verrouillées dés lors que tu protèges la feuille par outils/protection.

Si c'est la même colonne sur chaque feuille que tu souhaites deverrouiller, ou la même action

toutes tes feuilles doivent être déprotégées

Cliques sur la première feuille que tu souhaites traiter puis sur l'onglet de la feuille activée, clic droit et sélectionner toutes les feuilles.

tout ce que tu feras sur la première feuille sera automatiquement reproduit en même temps sur toutes tes feuilles.

Ensuite clic droit sur l'onglet de feuille et dissocier les feuilles. Pour la protection de chaque feuille hélas tu devras procéder feuille par feuille ou passer en VBA

A+
0
Oui merci pour ta réponse,
c'est bien ce qu'il me semblait, je dois le faire feuille par feuille (sa va mettre des heures!).
Et je ne connais pas les assez bien les macros pour le faire.
Tant pis.

Merci quand même, @+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
9 nov. 2008 à 18:43
Salut Wilfried, slamduck, Mike of Toulouse ( ou à coté?)

Wilfried: effectivement, à part Myta ex-XLD!

Bon,Slam.

ci dessous petite macro du Dimanche "après vêpres", les colonnes A à E restent verrouillées (tu n'avais pas précisé...):

Sub proteger()
nbre = Sheets.Count
For cptr = 1 To nbre
    With Sheets(cptr)
        .Cells.Locked = False
        .Columns("A:E").Locked = True
        .Protect
    End With
Next
End Sub


si tu ne connais pas les macros, tu nous le dis

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024 17 236
9 nov. 2008 à 18:57
Les feuilles 2 à 240 ont-elles la même structure, donc les mêmes colonnes à protéger ?
0
slamdunk77 Messages postés 13 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 11 novembre 2008 1
9 nov. 2008 à 19:32
oui les feuilles 2 à 240 ont la même structure. Les colonnes où il ne faut rien écrire sont :

A - J - K - L - M - N - O - P - X - Z - AA - AB et de AD à AU.
0
Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024 17 236
9 nov. 2008 à 20:47
Alors la toute première réponse, celle de Michel au post 1, répond parfaitement à ton problème !
0
Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024 17 236 > Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024
9 nov. 2008 à 21:07
... celle de Mike-31, comme me l'a fait remarquer une lectrice assidue et attentive, de la région bordelaise ...
0
slamdunk77 Messages postés 13 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 11 novembre 2008 1
9 nov. 2008 à 19:37
et si j'utilise la macro, je pourrais la désactiver si j'ai un changement de données à faire?

merci, @+
0
slamdunk77 Messages postés 13 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 11 novembre 2008 1
9 nov. 2008 à 21:12
bon si c'est tout ce qu'il me reste à faire, je le ferai.
Mais si une personnes me poste la macro je lui serai très reconnaissant.

Merci à vous tous pour vos idées et solutions.

A la prochaine, bye
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
9 nov. 2008 à 21:16
Je reprends le fil de la conversation, et soutiens pleinement le coup de gueule de michel_m, Soit on soutient l’équipe dont on fait parti soit on va voir ailleurs.

Pour revenir à notre problème, si slamduck77 ne domine pas le VBA, il lui sera difficile de comprendre et encore plus modifier le code plus tard. Comme je lui conseillais dans le post 1, en une seule opération il lui est possible de paramétrer toutes ces feuilles, la seule difficulté est la protection des feuilles qui se fera feuille par feuille.
Avec une macro, c’est la macro qui le fera exactement de la même manière.
Pour écrire cette macro avec un code qui sera lourd il nous faudrait le nom exact des 250 feuilles sans négliger les majuscules, mais après il faudra créer sur son fichier un module !

A voir
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
9 nov. 2008 à 21:27
Bonsoir tout le monde,

pas forcément mike, on peut travailler avec les index des feuilles :
Sub Protege()
    Dim i As Long
    For i = 1 To Sheets.Count
        Sheets(i).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        'Sheets(i).Unprotect
    Next
End Sub

Le code pour déprotéger est en commentaire...
A coller dans un module

eric
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
9 nov. 2008 à 21:35
Salut Eriiic,

Bien vu, toujours la avec une fine solution, tu observes et sots ta botte secrète et fais mouche à tous coup.
J’espère que tu resteras longtemps sur ce forum.

Bonne soirée
0
slamdunk77 Messages postés 13 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 11 novembre 2008 1
9 nov. 2008 à 22:04
je viens de voir vos postes, je comprends pas tout Mike-31 et Eriiic.
Je dirais même plus que je suis perdu ...

je comprends pas le terme de feuille index.
Sinon, toutes mes feuilles sont renommées, je sais pas si cette information est importante pour vous, ou si ça ne change rien pour vos macros .

@+
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
9 nov. 2008 à 22:37
T'inquiète, on va t'expliquer...

Déjà déprotège tes colonnes où il y aura saisie comme mike te l'a expliqué au post1 :
clic sur la 1ère feuille concernée, shift+clic sur la dernière, et tu sélectionnes successivement tes colonnes pour les déverrouiller, ça s'appliquera à tous les onglets sont sélectionnés (en blanc).

Ensuite Alt+F11 pour appeler l'éditeur VBA.
A gauche, clic droit sur ton projet (porte le nom de ton classeur) et 'insertion / module'.
Dans la fenetre de droite qui s'est crée tu colles :
Sub Protege()
    ' protège toutes les feuilles sauf la 1ère
    Dim i As Long
    For i = 2 To Sheets.Count
        Sheets(i).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Next
End Sub

Sub Deprotege()
    ' déprotège toutes les feuilles sauf la 1ère
    Dim i As Long
    For i = 2 To Sheets.Count
        Sheets(i).Unprotect
    Next
End Sub


Tu retournes dans ton classeur, tu sauvegardes
Alt+F8 pour appeler les macros, sélectionne celle qui t'interesse et 'executer'

eric
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
9 nov. 2008 à 22:47
Avec la participation de plusieurs tu vas avoir une macro top
Pour commencer tes feuilles doivent être protégées et seules les colonnes B, C, D, E, F, G, H, I, Q, R, S, T, U, V, W, Y, et AC doivent être accessibles, c’est bien cela !

Si c'est ça colle ce code dans un module et testes

Sub Deverrouille()
Dim i As Long
For i = 1 To Sheets.Count
Sheets(i).Unprotect
Next
Sheets.Select
Range("B:I,Q:W,Y:Y,AC:AC").Select
Selection.Locked = False
Range("A1").Select
Sheets("Feuil1").Select
For i = 1 To Sheets.Count
Sheets(i).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
End Sub


Pour afiner le code
Ensuite sur ces colonnes l’accès est de qu’elle ligne à quelle ligne, et le nombre peut il varier !.

A+
0
slamdunk77 Messages postés 13 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 11 novembre 2008 1
9 nov. 2008 à 23:51
Je suis peux être long à comprendre, mais c'est 2 macros différentes que vous m'avez posté Mike-31 et Eriiic?
Bon je réfléchis a ça cette nuit, j'essaye ça demain, et je vous tiens au courant.

Merci, @+
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
10 nov. 2008 à 08:39
Salut,

Eriiic t'a proposé deux macros, une pour protéger toutes tes feuilles et qui se nomme Protege et une pour déprotèger toutes tes feuilles nommée Deprotege

Ma proposition regroupe ces deux macros et j'ai ajouté le code pour déverrouiller les colonnes acessible.

En clair mon code Déprotége toutes tes feuilles déverrouille les colonnes que tu souhaites rendre accèssible et reprotége tes feuilles.

Pour un fonctionnement plus rationnel il conviendrai de deverrouiller les plages plutôt que les colonnes, c'est pour cela que je te demandais de nous dire la longueur utilisable de tes colonnes (de la ligne ? à la ligne ?).

comme tu es novice en VBA je pense qu'Eriiic à raison de te proposer les macro séparées, aussi, si la macro que je te propose te convient, je ta la proposerais scindée en 3 pour que tu puisse suivre le code

A+
0