EXCEL: protection feuilles excel
slamdunk77
-
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
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, @+
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:
- EXCEL: protection feuilles excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
15 réponses
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+
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+
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, @+
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, @+
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é...):
si tu ne connais pas les macros, tu nous le dis
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
A - J - K - L - M - N - O - P - X - Z - AA - AB et de AD à AU.
et si j'utilise la macro, je pourrais la désactiver si j'ai un changement de données à faire?
merci, @+
merci, @+
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
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
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
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
Bonsoir tout le monde,
pas forcément mike, on peut travailler avec les index des feuilles :
Le code pour déprotéger est en commentaire...
A coller dans un module
eric
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
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
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
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 .
@+
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 .
@+
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 :
Tu retournes dans ton classeur, tu sauvegardes
Alt+F8 pour appeler les macros, sélectionne celle qui t'interesse et 'executer'
eric
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
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+
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+
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, @+
Bon je réfléchis a ça cette nuit, j'essaye ça demain, et je vous tiens au courant.
Merci, @+
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+
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+
Donc, ici, on est des cons ?
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