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

verrouillage cellule

J

jc de lorient

Guest
re le forum,

j'ai une feuille verrouillée sauf 6 cellules qui sont complétées par l'utilisateur

j'ai quelques cellules verrouillées qui se complétent a partir d'une autre feuille renseignée au préalable

j'ai un commandbutton qui m'efface toutes les données

J'ai un souci : ma macro plante pour effacer les cellules verrouillées

existe -t-il une parade ?

merci boucoup

JC
 
L

léa

Guest
Bonjour JC,

Si tes cellules sont vérouillées comment veux-tu agir dessus sans les dévérouiller au préalable

La parade :
dévérouillage des cellules concernées à la main
dévérouillages momentanée de la feuille contenant ces cellules grace à une petite routine en VBA

Voila
Léa
 
B

Bricofire

Guest
Bonjour,

tu fais une routine de verouillage et une de dévérouillage (exemple à suivre) et tu les appelle en début et en fin de procédure (les placer dans un module).
Si mot de passe il y a , cf la syntaxe avec l'aide en ligne vba, c'est un argument facultatif.

Sub Protect()
Dim FeuillP
Application.ScreenUpdating = False 'sert à accélérer l'exécution si besoin
For Each FeuillP In Worksheets
If FeuillP.Protect = False Then
FeuillP.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Next
Application.ScreenUpdating = True ' cf ci-dessus
End Sub

Sub NoProtect()
Dim FeuillP2
Application.ScreenUpdating = False
For Each FeuillP2 In Worksheets
If FeuillP2.Protect = True Then
FeuillP2.Unprotect
End If
Next
Application.ScreenUpdating = True

bon courage,

Bfr
 
B

Bricofire

Guest
coucou,

oui c'est amusant, le temps de rédaction des réponses (sans parler des recherches compliquées pour certains) crée des doublons, mais permet aussi de connaître diverses approches, c'est comme les jeux d'aventure faits en joueur unique, c'est super d'y jouer à plusieurs devant l'écran quitte à passer la manette au plus doué dans les scènes d'arcade sévères

cordialement,

Bfr
 
J

jc de lorient

Guest
re tout le monde !
je savais bien que je serais revenu içi !!!!

bon voilà ce que j'ai fait pour déprotéger

Sub Déprotège()
Dim Fiche_paye
Application.ScreenUpdating = False
For Each Fiche_paye In Worksheets
If Fiche_paye.Protect = True Then
Fiche_paye.Unprotect
End If
Next
Application.ScreenUpdating = True

End Sub

Pour protéger :

Sub Protège()

Dim Fiche_paye
Application.ScreenUpdating = False 'sert à accélérer l'exécution si besoin
For Each Fiche_paye In Worksheets
If Fiche_paye.Protect = False Then
Fiche_paye.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Next
Application.ScreenUpdating = True ' cf ci-dessus
End Sub

et enfin le code de mon commandbutton

Private Sub CommandButton3_Click()

MultiCellCopy
Déprotège
effacer
Protège

End Sub

évidemment ça ne marche pas
ça serait très sympas de m'éclairer

merci bcp
JC
 
B

Bricofire

Guest
RE JC dl

Je vais manger, donc vite fait, à première vue donc...

Si tu veux appeler une pocédure, il faut que tu le fasses avec l'instruction :

Call

Call Protège en début

Call Déprotège en fin

tu mets tes procédures de protection dans un module, mais tu mets les instructions d'appel (call...) dans le code de ton commandbutton...

redemande si besoin,

bon courage,

Bfr
 
J

jmps

Guest
Bonjour à tous,

Il existe une méthode plus efficace pour protéger une feuille tout en laissant les macros modifier les cellules bloquées :

Private Sub Workbook_Open()
  Worksheets("Feuil1").Protect UserInterfaceOnly:=True
End Sub


A mettre dans le Workbook_Open() car ce paramètre est "volatile".

Voir ce fil pour plus d'explications de la part de notre ami @+Thierry :
Lien supprimé

Bon week-end à tous.

José
 
J

jc de lorient

Guest
re le forum

après quelques tests sur la fonction de JMPS, y'a juste un petit soucis
avoir avoir enregistrer la feuille et fermeé le classeur
puis à sa réouverture mes cellules sont déverrouillées alors que la fonction outils/protection est sur verrouilé!
ci après mon code :

Sub Effacer()
'
' Effacer Macro
' Macro enregistrée le 03/02/2005 par jc

ActiveSheet.Unprotect

Range("I9:J10,E21:E24,C15,G26").Select
Range("G26").Activate
ActiveWindow.SmallScroll Down:=36
Range("I9:J10,E21:E24,C15,G26").Select
Range("G26").Activate
ActiveWindow.SmallScroll Down:=-60
Selection.ClearContents
Range("I9:J10").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

est ce un problème de code ?

merci a vous
JC
 
J

jmps

Guest
Re JC,

Oui et non, ce n'est pas un problème de code, mais de compréhension de ta part.
Le fait d'utiliser Worksheets("Feuil1").Protect UserInterfaceOnly:=True dans le Workbook_Open de ton classeur permet à tes macros de modifier n'importe quelle cellule y compris celles qui sont protégées. L'utilisateur lui ne pourra pas. Donc tu n'as plus besoin de faire des unprotect et des protect dans tes macros.
De plus il faut bien le mettre dans le Workbook_Open pour protéger ta feuille à chaque ouverture du classeur, autrement quand tu refermes le classeur (même en enregistrant), la protection n'est plus activée.

N'hésite pas si je me fais mal comprendre.

A+

José
 

Discussions similaires

Réponses
3
Affichages
608
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…