OVH Cloud OVH Cloud

Savoir si une cellule est protègée ou non

7 réponses
Avatar
Gaspareau
Bonjour,

J'ai un classeur que je dois faire parvenir à un fournisseur
et je veux qu'il ne remplisse que certaines cellules dans
mon décompte.

De ce fait je protège les feuilles tout en prenant soin de
"déprotéger" les cellules à remplir.

Je voudrais savoir s'il existe un truc ou un code afin de
connaître les cellules ainsi déprotégées.

Exemple la cellule pourrait être grisée si non-protégée.

En plus si possible, lors de l'impression, il ne faudrait
pas que ce grisé s'imprime.

Quelqu'un peut aider ??

Merci à l'avance

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk

7 réponses

Avatar
michdenis
Bonjour Gaspareau,

Dans une feuille pour qu'une cellule soit verrouillée, ll faut :

A ) que la propriété de la cellule "Verrouillée" soit cochée
Barre des menus / format / cellules / onglet Protection

B ) que la feuille soit protégée


par une procédure vba, tu peux toujours utilisé ceci :

Tu peux faire un petit test :
'---------------------
Sub Verrouille()

If Range("A1").Locked = True Then
MsgBox "Cellule verrouilée"
End If

End Sub
'---------------------

Sinon directement dans la feuille, tu peux leur appliquer un format particulier !!!


Salutations!


"Gaspareau" a écrit dans le message de news:
Bonjour,

J'ai un classeur que je dois faire parvenir à un fournisseur
et je veux qu'il ne remplisse que certaines cellules dans
mon décompte.

De ce fait je protège les feuilles tout en prenant soin de
"déprotéger" les cellules à remplir.

Je voudrais savoir s'il existe un truc ou un code afin de
connaître les cellules ainsi déprotégées.

Exemple la cellule pourrait être grisée si non-protégée.

En plus si possible, lors de l'impression, il ne faudrait
pas que ce grisé s'imprime.

Quelqu'un peut aider ??

Merci à l'avance

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk
Avatar
Gaspareau
Bonjour,

Mon problème c'est que j'ai plusieurs cellules pour
lesquelles j'ôte la protection car l'entrepreneur devra
saisir une donnée. Je voudrais donc que d'un seul coup
d'œil il sache les endroits où il doit saisir. C'est le
pourquoi je voudrais avoir un format particulier sur les
cellules sans protection. Comme je ne veux pas les faire
tous une par une je voudrais donc pouvoir les identifier par
VBA.

Par la suite lorsque le décompte s'imprime, si possible, je
ne voudrais pas avoir le grisé.

Pour se qui est de la procédure que tu m'as décrite, c'est
déjà se que je fait manuellement.

En bref, après avoir fait mon travail de protection,
déprotection je veux pouvoir connaître celles sans
protection.

C'est plus clair ??

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk

"michdenis" a écrit dans le message
de news:
Bonjour Gaspareau,

Dans une feuille pour qu'une cellule soit verrouillée, ll
faut :


A ) que la propriété de la cellule "Verrouillée" soit
cochée

Barre des menus / format / cellules / onglet
Protection


B ) que la feuille soit protégée


par une procédure vba, tu peux toujours utilisé ceci :

Tu peux faire un petit test :
'---------------------
Sub Verrouille()

If Range("A1").Locked = True Then
MsgBox "Cellule verrouilée"
End If

End Sub
'---------------------

Sinon directement dans la feuille, tu peux leur appliquer
un format particulier !!!



Salutations!


"Gaspareau" a écrit dans le message de
news:

Bonjour,

J'ai un classeur que je dois faire parvenir à un
fournisseur

et je veux qu'il ne remplisse que certaines cellules dans
mon décompte.

De ce fait je protège les feuilles tout en prenant soin de
"déprotéger" les cellules à remplir.

Je voudrais savoir s'il existe un truc ou un code afin de
connaître les cellules ainsi déprotégées.

Exemple la cellule pourrait être grisée si non-protégée.

En plus si possible, lors de l'impression, il ne faudrait
pas que ce grisé s'imprime.

Quelqu'un peut aider ??

Merci à l'avance

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk




Avatar
michdenis
Bonjour Gaspareau,

il y a bien ceci , mais cela demande que tu définisses manuellement la liste des celllules déverrouillées.
Je ne connais pas de méthode qui permette de regrouper rapidement les cellules déverrouillées !

'---------------------------
Sub Verrouille()

Dim Rg As Range

With Worksheets("feuil1")
'Détermine ta liste des cellules déverrouilée
'à la main.
Set Rg = .Range("A1:A5,C2,G10:H10,K1:k5")
End With

For Each are In Rg.Areas
With are
' lignes de code décrivant le format
End With
Next

Set Rg = Nothing

End Sub
'---------------------------


Salutations!



"Gaspareau" a écrit dans le message de news:
Bonjour,

Mon problème c'est que j'ai plusieurs cellules pour
lesquelles j'ôte la protection car l'entrepreneur devra
saisir une donnée. Je voudrais donc que d'un seul coup
d'œil il sache les endroits où il doit saisir. C'est le
pourquoi je voudrais avoir un format particulier sur les
cellules sans protection. Comme je ne veux pas les faire
tous une par une je voudrais donc pouvoir les identifier par
VBA.

Par la suite lorsque le décompte s'imprime, si possible, je
ne voudrais pas avoir le grisé.

Pour se qui est de la procédure que tu m'as décrite, c'est
déjà se que je fait manuellement.

En bref, après avoir fait mon travail de protection,
déprotection je veux pouvoir connaître celles sans
protection.

C'est plus clair ??

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk

"michdenis" a écrit dans le message
de news:
Bonjour Gaspareau,

Dans une feuille pour qu'une cellule soit verrouillée, ll
faut :


A ) que la propriété de la cellule "Verrouillée" soit
cochée

Barre des menus / format / cellules / onglet
Protection


B ) que la feuille soit protégée


par une procédure vba, tu peux toujours utilisé ceci :

Tu peux faire un petit test :
'---------------------
Sub Verrouille()

If Range("A1").Locked = True Then
MsgBox "Cellule verrouilée"
End If

End Sub
'---------------------

Sinon directement dans la feuille, tu peux leur appliquer
un format particulier !!!



Salutations!


"Gaspareau" a écrit dans le message de
news:

Bonjour,

J'ai un classeur que je dois faire parvenir à un
fournisseur

et je veux qu'il ne remplisse que certaines cellules dans
mon décompte.

De ce fait je protège les feuilles tout en prenant soin de
"déprotéger" les cellules à remplir.

Je voudrais savoir s'il existe un truc ou un code afin de
connaître les cellules ainsi déprotégées.

Exemple la cellule pourrait être grisée si non-protégée.

En plus si possible, lors de l'impression, il ne faudrait
pas que ce grisé s'imprime.

Quelqu'un peut aider ??

Merci à l'avance

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk




Avatar
Michèle
Bonsoir,

Dans une feuille protégée, si tu appuies sur la touche TAB (juste au dessus
de Maj à gauche), tu te déplaces uniquement sur les cellules non protégées.
De plus, si cela peut t'aider, voici comment je procède :
Quand j'ai fini mon tableau, je selectionne les cellules de saisie une à une
(en appyant sur CTRL), je clique sur le pot de peinture et je choisis un
fond jaune très clair (qui ne se voit pas à l'impression en noir et blanc),
puis tout en gardant mes cellules selectionnées, je fais :
Format/Cellule/Protection et je décoche "Verrouillé"
puis Outils/protection/protéger la feuille

C'est tout : .L'utilisateur voit du premier coup d'oeil les cellules de
saisie et ça lui permet de saisir les données sans risquer d'écraser mes
formules.
Bonne soirée

Michèle

"Gaspareau" a écrit dans le message de news:

Bonjour,

Mon problème c'est que j'ai plusieurs cellules pour
lesquelles j'ôte la protection car l'entrepreneur devra
saisir une donnée. Je voudrais donc que d'un seul coup
d'œil il sache les endroits où il doit saisir. C'est le
pourquoi je voudrais avoir un format particulier sur les
cellules sans protection. Comme je ne veux pas les faire
tous une par une je voudrais donc pouvoir les identifier par
VBA.

Par la suite lorsque le décompte s'imprime, si possible, je
ne voudrais pas avoir le grisé.

Pour se qui est de la procédure que tu m'as décrite, c'est
déjà se que je fait manuellement.

En bref, après avoir fait mon travail de protection,
déprotection je veux pouvoir connaître celles sans
protection.

C'est plus clair ??

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk

"michdenis" a écrit dans le message
de news:
Bonjour Gaspareau,

Dans une feuille pour qu'une cellule soit verrouillée, ll
faut :


A ) que la propriété de la cellule "Verrouillée" soit
cochée

Barre des menus / format / cellules / onglet
Protection


B ) que la feuille soit protégée


par une procédure vba, tu peux toujours utilisé ceci :

Tu peux faire un petit test :
'---------------------
Sub Verrouille()

If Range("A1").Locked = True Then
MsgBox "Cellule verrouilée"
End If

End Sub
'---------------------

Sinon directement dans la feuille, tu peux leur appliquer
un format particulier !!!



Salutations!


"Gaspareau" a écrit dans le message de
news:

Bonjour,

J'ai un classeur que je dois faire parvenir à un
fournisseur

et je veux qu'il ne remplisse que certaines cellules dans
mon décompte.

De ce fait je protège les feuilles tout en prenant soin de
"déprotéger" les cellules à remplir.

Je voudrais savoir s'il existe un truc ou un code afin de
connaître les cellules ainsi déprotégées.

Exemple la cellule pourrait être grisée si non-protégée.

En plus si possible, lors de l'impression, il ne faudrait
pas que ce grisé s'imprime.

Quelqu'un peut aider ??

Merci à l'avance

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk







Avatar
Rai
Gaspareau wrote:
Bonjour,

Mon problème c'est que j'ai plusieurs cellules pour
lesquelles j'ôte la protection car l'entrepreneur devra
saisir une donnée. Je voudrais donc que d'un seul coup
d'œil il sache les endroits où il doit saisir. C'est le
pourquoi je voudrais avoir un format particulier sur les
cellules sans protection. Comme je ne veux pas les faire
tous une par une je voudrais donc pouvoir les identifier par
VBA.

Par la suite lorsque le décompte s'imprime, si possible, je
ne voudrais pas avoir le grisé.

Pour se qui est de la procédure que tu m'as décrite, c'est
déjà se que je fait manuellement.

En bref, après avoir fait mon travail de protection,
déprotection je veux pouvoir connaître celles sans
protection.

C'est plus clair ??


Bonsoir,


Dans un module, insère la procédure suivante :
Sub grise()
For Each c In ActiveSheet.UsedRange
If Not (c.Locked) Then
c.Interior.ColorIndex = 15
End If
Next c
End Sub


Cette procédure sera à utiliser pour savoir quelles cellules ne sont pas protégées

et dans le code de This Workbook insère la procédure suivante :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each c In ActiveSheet.UsedRange
If Not (c.Locked) Then
c.Interior.ColorIndex = xlLineStyleNone
End If
Next c
End Sub

Cette procédure enlève le fond gris des cellules non-protégées avant l'impression.


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

Avatar
Gaspareau
Merci beaucoup,

La solution que j'utiliserai sera à mi-chemin entre vos deux
réponses

C'est à dire que j'utiliserai la macro pour mettre mes
cellules non-protégées en jaune pâle (C.Interior.ColorIndex
= 36)

Merci encore une fois

--
Gaspareau

Mon adresse de bal via
http://cerbermail.com/?5d2oh98jSk

"Rai" a écrit dans le
message de news:c8gb9u$29i$
Gaspareau wrote:
Bonjour,

Mon problème c'est que j'ai plusieurs cellules pour
lesquelles j'ôte la protection car l'entrepreneur devra
saisir une donnée. Je voudrais donc que d'un seul coup
d'œil il sache les endroits où il doit saisir. C'est le
pourquoi je voudrais avoir un format particulier sur les
cellules sans protection. Comme je ne veux pas les faire
tous une par une je voudrais donc pouvoir les identifier
par

VBA.

Par la suite lorsque le décompte s'imprime, si possible,
je

ne voudrais pas avoir le grisé.

Pour se qui est de la procédure que tu m'as décrite, c'est
déjà se que je fait manuellement.

En bref, après avoir fait mon travail de protection,
déprotection je veux pouvoir connaître celles sans
protection.

C'est plus clair ??


Bonsoir,


Dans un module, insère la procédure suivante :
Sub grise()
For Each c In ActiveSheet.UsedRange
If Not (c.Locked) Then
c.Interior.ColorIndex = 15
End If
Next c
End Sub


Cette procédure sera à utiliser pour savoir quelles cellules
ne sont pas protégées

et dans le code de This Workbook insère la procédure
suivante :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each c In ActiveSheet.UsedRange
If Not (c.Locked) Then
c.Interior.ColorIndex = xlLineStyleNone
End If
Next c
End Sub

Cette procédure enlève le fond gris des cellules
non-protégées avant l'impression.


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour
répondre...

Avatar
Isa
bonjour,
tu as aussi la possibilite de definir un nom pour tes cellules en les
preselectionnant
puis tu leur apliques une mise en forme
en plus ça ne gene en rien la protection eventuelle

bon courage

Gaspareau avait prétendu :
Bonjour,

J'ai un classeur que je dois faire parvenir à un fournisseur
et je veux qu'il ne remplisse que certaines cellules dans
mon décompte.

De ce fait je protège les feuilles tout en prenant soin de
"déprotéger" les cellules à remplir.

Je voudrais savoir s'il existe un truc ou un code afin de
connaître les cellules ainsi déprotégées.

Exemple la cellule pourrait être grisée si non-protégée.

En plus si possible, lors de l'impression, il ne faudrait
pas que ce grisé s'imprime.

Quelqu'un peut aider ??

Merci à l'avance


--
Isa