Proteger des cellules.

Le
Jean Bidule
Bonjour le forum,

je cherche un moyer (par macros) de protéger toutes les cellules qui ont un
fonds jaune (colorindex6) dans toutes les feuilles du fichiers.

Y-aurait-il moyen ?

Merci de votre attention.
Jean
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4902701
Bonjour,


Protège cellules jaunes

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
For Each c In Sheets(s).[A1:K100]
c.Locked = (c.Interior.ColorIndex = 36)
Next c
Sheets(s).Protect
Next s
End Sub

http://cjoint.com/?hirR02r5Sp

JB


On 8 juil, 16:49, "Jean Bidule"
Bonjour le forum,

je cherche un moyer (par macros) de protéger toutes les cellules qui on t un
fonds jaune (colorindex6) dans toutes les feuilles du fichiers.

Y-aurait-il moyen ?

Merci de votre attention.
Jean


Jean Bidule
Le #4902691
Super JB! Merci beaucoup pour votre réponse.

Jean


"JB" news:
Bonjour,


Protège cellules jaunes

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
For Each c In Sheets(s).[A1:K100]
c.Locked = (c.Interior.ColorIndex = 36)
Next c
Sheets(s).Protect
Next s
End Sub

http://cjoint.com/?hirR02r5Sp

JB


On 8 juil, 16:49, "Jean Bidule"
Bonjour le forum,

je cherche un moyer (par macros) de protéger toutes les cellules qui ont
un
fonds jaune (colorindex6) dans toutes les feuilles du fichiers.

Y-aurait-il moyen ?

Merci de votre attention.
Jean


MichDenis
Le #4902681
Un petit exemple utile pour AnonymousA sur la propriété Item
de la collection Worksheets

Note AnonymousA qu'il y a une différence entre Worksheets
et Sheets


'-----------------------
Sub protège()
With Worksheets
For s = 1 To .Count
With .Item(s)
.Unprotect
For Each c In .[A1:K100]
c.Locked = (c.Interior.ColorIndex = 36)
Next c
.Unprotect
End With
Next s
End With
End Sub
'-----------------------





"JB"
Bonjour,


Protège cellules jaunes

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
For Each c In Sheets(s).[A1:K100]
c.Locked = (c.Interior.ColorIndex = 36)
Next c
Sheets(s).Protect
Next s
End Sub

http://cjoint.com/?hirR02r5Sp

JB


On 8 juil, 16:49, "Jean Bidule"
Bonjour le forum,

je cherche un moyer (par macros) de protéger toutes les cellules qui ont un
fonds jaune (colorindex6) dans toutes les feuilles du fichiers.

Y-aurait-il moyen ?

Merci de votre attention.
Jean


Jean Bidule
Le #4902461
Bonjour, JB

Je viens d'essayer et les deux macros marchent bien mais malheureusement dès
qu'il y a des cellules fusionnées il y a une erreur d'exécution 1004
"Impossible de définir la propriété Locked de la classe Range' qui apparait
sur la ligne 'c.Locked = (c.Interior.ColorIndex = 36)'.
Dommage!

En tout cas un grand merci pour votre dévouement.
Jean

"JB" news:
Bonjour,


Protège cellules jaunes

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
For Each c In Sheets(s).[A1:K100]
c.Locked = (c.Interior.ColorIndex = 36)
Next c
Sheets(s).Protect
Next s
End Sub

http://cjoint.com/?hirR02r5Sp

JB


On 8 juil, 16:49, "Jean Bidule"
Bonjour le forum,

je cherche un moyer (par macros) de protéger toutes les cellules qui ont
un
fonds jaune (colorindex6) dans toutes les feuilles du fichiers.

Y-aurait-il moyen ?

Merci de votre attention.
Jean


JB
Le #4902451
Bonjour,

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
For Each c In Sheets(s).[A1:K100]
If Not c.MergeCells Then
c.Locked = (c.Interior.ColorIndex = 36)
End If
Next c
Sheets(s).Protect
Next s
End Sub

JB

On 9 juil, 06:23, "Jean Bidule"
Bonjour, JB

Je viens d'essayer et les deux macros marchent bien mais malheureusement dès
qu'il y a des cellules fusionnées il y a une erreur d'exécution 1004
"Impossible de définir la propriété Locked de la classe Range' qui apparait
sur la ligne 'c.Locked = (c.Interior.ColorIndex = 36)'.
Dommage!

En tout cas un grand merci pour votre dévouement.
Jean

"JB" Bonjour,

Protège cellules jaunes

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
For Each c In Sheets(s).[A1:K100]
c.Locked = (c.Interior.ColorIndex = 36)
Next c
Sheets(s).Protect
Next s
End Sub

http://cjoint.com/?hirR02r5Sp

JB

On 8 juil, 16:49, "Jean Bidule"


Bonjour le forum,

je cherche un moyer (par macros) de protéger toutes les cellules qui ont
un
fonds jaune (colorindex6) dans toutes les feuilles du fichiers.

Y-aurait-il moyen ?

Merci de votre attention.
Jean- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



habitrouge82
Le #4901331
Je me permets d'intervenir, étant interessé par cette VBA, j'ai fais
essais avec chacune des solutions proposées ci-dessus, en modifiant
d'une part la référence de la couleur (30 au lieu de 36) et en
modifiant le champ A1:AB300 au lieu de A1:K100
Hélas cela ne fonctionne pas
je pense avoir fait une erreur mais laquelle ?
Merci par avance de votre gentillesse
habitrouge
JB
Le #4901211
Bonsoir,

Difficile de répondre sans un échantillon du fichier.
(Copier/Coller dans un classeur vierge)

JB
On 9 juil, 18:24, wrote:
Je me permets d'intervenir, étant interessé par cette VBA, j'ai fais
essais avec chacune des solutions proposées ci-dessus, en modifiant
d'une part la référence de la couleur (30 au lieu de 36) et en
modifiant le champ A1:AB300 au lieu de A1:K100
Hélas cela ne fonctionne pas
je pense avoir fait une erreur mais laquelle ?
Merci par avance de votre gentillesse
habitrouge


habitrouge82
Le #4900981
Ci joint le dossier :

Pour alleger je n'ai copié que la feuille principale, mais il y a
environ une soixantaine de feuilles en tout dans le dossier et pour
lesquelles je souhaite que s'applique la vba en fait 65 exactement et
chacune ayant bien entendu une reference distincte.
A protéger la reference couleur 30 (brun rouge).

La plage concernée est A1:AC39

merci d'avance
habitrouge

http://cjoint.com/?hjwq6eyAKo


On 9 juil, 19:52, JB
Bonsoir,

Difficile de répondre sans un échantillon du fichier.
(Copier/Coller dans un classeur vierge)

JB


JB
Le #4900791
Bonjour,

Le code du brun n'est pas 30 mais 9:

http://cjoint.com/?hkhaLDuEDY

Sub protège()
For s = 1 To Sheets.Count
Sheets(s).Unprotect
Sheets(s).Cells.Locked = False
For Each c In Sheets(s).[A1:Z100]
If Not c.MergeCells Then
c.Locked = (c.Interior.ColorIndex = 9)
End If
Next c
Sheets(s).Protect
Next s
End Sub

JB

On 9 juil, 22:30, wrote:
Ci joint le dossier :

Pour alleger je n'ai copié que la feuille principale, mais il y a
environ une soixantaine de feuilles en tout dans le dossier et pour
lesquelles je souhaite que s'applique la vba en fait 65 exactement et
chacune ayant bien entendu une reference distincte.
A protéger la reference couleur 30 (brun rouge).

La plage concernée est A1:AC39

merci d'avance
habitrouge

http://cjoint.com/?hjwq6eyAKo

On 9 juil, 19:52, JB


Bonsoir,

Difficile de répondre sans un échantillon du fichier.
(Copier/Coller dans un classeur vierge)

JB- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Modeste
Le #4900621
Bonsour® JB avec ferveur ;o))) vous nous disiez :

Le code du brun n'est pas 30 mais 9
si... si... !!!

Pour la palette par défaut Excel 2002 , ce sont les mêmes couleurs ;o)))
cela dépend surtout de la modification de la palette !!!!

;o)))
ActiveWorkbook.ResetColors
[A1].Interior.ColorIndex = 30
[A2].Interior.ColorIndex = 9
[B1] = [A1].Interior.Color
[B2] = [A2].Interior.Color

mais cela pourrait trés bien etre Blanc !!!
(ou autre couleur personnalisée)

ActiveWorkbook.Colors(9) = RGB(255, 255, 255)
voir exemples là :
http://excelabo.net/excel/compteclic.php?nom=gd-xlcolors





@+
;o)))

Publicité
Poster une réponse
Anonyme