Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Proteger des cellules.

16 réponses
Avatar
Jean Bidule
Bonjour le forum,

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

Y-aurait-il moyen ?

Merci de votre attention.
Jean

10 réponses

1 2
Avatar
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" wrote:
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


Avatar
Jean Bidule
Super JB! Merci beaucoup pour votre réponse.

Jean


"JB" a écrit dans le message de
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" wrote:
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


Avatar
MichDenis
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" a écrit dans le message de 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" wrote:
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


Avatar
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" a écrit dans le message de
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" wrote:
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


Avatar
JB
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" wrote:
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" a écrit dans le message denews:118390944
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" wrote:



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 -



Avatar
habitrouge82
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
Avatar
JB
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


Avatar
habitrouge82
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 wrote:
Bonsoir,

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

JB


Avatar
JB
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 wrote:



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 -



Avatar
Modeste
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)))

1 2