Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Critères de verrouillage via macro

  • Initiateur de la discussion Initiateur de la discussion ILoveZadig
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ILoveZadig

XLDnaute Occasionnel
Bonjour à tous,

Je me suis rendu compte que lorsque l'on ajoute les codes :

Code:
ActiveSheet.Unprotect

Code:
ActiveSheet.Protect

Le verrouillage de la feuille redevient standard, c'est-à-dire avec uniquement la possibilité de sélectionner les cellules verrouillées et non verrouillées.

Est-il possible via cette macro de reverrouiller la feuille avec certains critères précis tels que :
  • Format de cellules
  • Format de colonnes
  • Format de lignes
  • Insérer colonnes/lignes
  • Supprimer colonnes/lignes
  • Utiliser le filtre automatique

Merci beaucoup par avance. 🙂
 
Re : Critères de verrouillage via macro

Bonjour,

Dans VBA, tu cliques sur le mot Protect et tu appuies sur F1.
Ensuite tu devras surement choisir l'objet (je pense qu'il s'agit de Worksheet)
et là tu auras tous les arguments de cette méthode (et y'en a pleins je viens d'essayer...)

Caillou
 
Re : Critères de verrouillage via macro

Merci pour cette réponse. Je suis donc allé voir dans VBA, puis tapé ce code :

Code:
ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select
    Selection.Copy
    ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    ActiveCell.Offset(-1, 0).Range("A1:E1").Select
    Selection.Copy
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    ActiveCell.Offset(-1, 3).Range("A1:B1").Select
    Selection.Copy
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(-2, 0).Range("A1").Select
    Application.CutCopyMode = False
    
    ActiveCell.Offset(1, -3).Range("A1:E1").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With

[B][COLOR="Red"]ActiveSheet.Protect AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True
End Sub[/COLOR][/B]

Et... rien ne se passe. 😕

J'ai fait une erreur? (j'ai mis en gras rouge les lignes concernées 🙂)
 
Re : Critères de verrouillage via macro

Oui, mais l'argument contents est par défaut sur True, donc je ne l'ai pas mis. Il faut l'ajouter tout de même?

De plus, lorsque je lance la macro, je ne peux ni ajouter de ligne, ni en supprimer etc. contrairement à ce que je pensais avoir indiqué dans la macro.
 
Re : Critères de verrouillage via macro

Si, tout à l'heure contents était à faux dans ton code, j'ai fait un copier/Coller (pas rêver!)
Par contre à mon avis, pour pouvoir supprimer une ligne sur une feuille protégée il faut que la ligne ne comporte que des cellules non verrouillées!

Caillou
 
Re : Critères de verrouillage via macro


Ah! Oui, en effet, j'ai posté avec contents:=false, mais je m'en suis rendu compte tout de suite, et je l'ai enlevé dans les 10 sec. Tu as donc été très rapide !

Oui, j'ai des cellules verrouillées donc impossible de supprimer les lignes. 🙁

Merci pour tes réponses en tout cas !
 
Re : Critères de verrouillage via macro

J'ai tout de même revérifié, et même en déverrouillant toutes les lignes, je ne peux pas, lorsque je lance la macro, supprimer une ligne, malgré le code :

Code:
ActiveSheet.Protect AllowFormattingCells:=True,
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowInsertingColumns:=True, AllowInsertingRows:=True,
AllowDeletingColumns:=True, AllowDeletingRows:=True
End Sub

J'ai ajouté le fichier en question, si quelqu'un voit une solution. 🙂
 

Pièces jointes

Re : Critères de verrouillage via macro

Attention dans ton fichier, la ligne de code n'affiche que :
ActiveSheet.Protect
et non
ActiveSheet.Protect contents:=True, AllowDeletingRows:=True

de plus je viens d'essayer et ca marche parfaitement

Caillou
 
Re : Critères de verrouillage via macro

J'ai compris..

J'avais 2 fichiers ouverts :

  • Cout de revient M (le fichier joint ici)
  • Cout de revient


Je modifiais depuis tout à l'heure le module Cout de revient, et travaillais sur Cout de revient M.. Forcémenent ça ne pouvait pas aller.

Merci en tout cas pour ton aide Caillou 🙂 Tout est rentré dans l'ordre!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…