lister les cellules protégées ?

mafaro

XLDnaute Junior
bonjour à tous.
Voilà un moment que je cherche et que je ne trouve pas :
Est-ce qu'il y a une methode dans excel 2000 ou xp de visualiser les cellules protégées; même si la feuille n'est pas encore protégées.
Si non : macros ?
 
Dernière édition:

fred65200

XLDnaute Impliqué
Re : lister les cellules protégées ?

mafaro,
une solution si tu as des cellules ayant déjà une couleur de fond.

Code:
Sub Test()
'appelle de la procédure
CellulesProtégées False
Stop
CellulesProtégées True
End Sub
Sub CellulesProtégées(Restaurer As Boolean)
'Pour faire fonctionner cette macro, j'ai ajouté une feuille que j'ai nommé Tampon
'cette feuille peut être masquée ou "veryHidden"
Select Case Restaurer
Case 0  'Restaurer = Faux
'initialisation du tableau dynamique
Dim table_C() As Variant
compteur = 0
For Each c In ActiveSheet.UsedRange
  If Not c.Locked Then
      'on redimensionne le tableau +1 avec plusieurs variables
      ReDim Preserve table_C(6, compteur)
      table_C(0, compteur) = c.Address
      table_C(1, compteur) = c.Interior.ColorIndex
      table_C(2, compteur) = c.Interior.Pattern
      table_C(3, compteur) = c.Interior.PatternColorIndex
      table_C(4, compteur) = c.Interior.ThemeColor
      table_C(5, compteur) = c.Interior.TintAndShade
      table_C(6, compteur) = c.Interior.PatternTintAndShade
      Range(c.Address).Interior.ColorIndex = 6
      'on incrémente le compteur +1
      compteur = compteur + 1
  End If
Next
  'on efface les données de la feuille Tampon au cas ou
  Sheets("Tampon").Columns("A:G").ClearContents
  'on colle le tableau en lignes
  Sheets("Tampon").Range("A1:G" & compteur).Value = _
    Application.Transpose(table_C)
    
    
Case 1  'Restaurer = Vrai
  For i = 1 To ['Tampon'!A1].CurrentRegion.Rows.Count
    'on récupère les infos sur la feuille tampon et on applique
    With ActiveSheet.Range(Sheets("Tampon").Cells(i, 1)).Interior
      .ColorIndex = Sheets("Tampon").Cells(i, 2).Value
      .Pattern = Sheets("Tampon").Cells(i, 3).Value
      .PatternColorIndex = Sheets("Tampon").Cells(i, 4).Value
      .ThemeColor = Sheets("Tampon").Cells(i, 5).Value
      .TintAndShade = Sheets("Tampon").Cells(i, 6).Value
      .PatternTintAndShade = Sheets("Tampon").Cells(i, 7).Value
    End With
  Next
    'on efface les données de la feuille Tampon
Sheets("Tampon").Columns("A:G").ClearContents
End Select
End Sub

Cet exemple est fait pour Excel 2007, je pense que tu peux supprimer (ou mettre en commentaire) quelques lignes du tableau.
Tu peux aussi ajouter la police, etc.

Bonne soirée
 

mafaro

XLDnaute Junior
Re : lister les cellules protégées ?

bonjour fred, je viens d'essayer ta macro . j'ai du supprimer :
table_C(4, compteur) = c.Interior.ThemeColor
table_C(5, compteur) = c.Interior.TintAndShade
table_C(6, compteur) = c.Interior.PatternTintAndShade
Ensuite la macro test m'ouvre vba et surligne en jaune STOP. donc erreur que je ne sais evidement pas quoi faire avec !
j'ai bien inseré feuille tampon.

Merci de t' interesser à ce petit prob , certes non existentiel juste pour le fun et faire avancer les petits comme moi ;-)
 
Dernière édition:

fred65200

XLDnaute Impliqué
Re : lister les cellules protégées ?

Bonsoir,

la même macro sans les lignes dont tu n'as pas besoin

Compare les deux macros et les données que j'ai changé.

Code:
Sub CellulesProtégées(Restaurer As Boolean)
'Pour faire fonctionner cette macro, j'ai ajouté une feuille que j'ai nommé Tampon
'cette feuille peut être masquée ou "veryHidden"
Select Case Restaurer
Case 0  'Restaurer = Faux
'initialisation du tableau dynamique
Dim table_C() As Variant
compteur = 0
For Each c In ActiveSheet.UsedRange
If Not c.Locked Then
      'on redimensionne le tableau +1 avec plusieurs variables
      ReDim Preserve table_C(3, compteur)
      table_C(0, compteur) = c.Address
      table_C(1, compteur) = c.Interior.ColorIndex
      table_C(2, compteur) = c.Interior.Pattern
      table_C(3, compteur) = c.Interior.PatternColorIndex
      Range(c.Address).Interior.ColorIndex = 6
      'on incrémente le compteur +1
      compteur = compteur + 1
  End If
Next
  'on efface les données de la feuille Tampon au cas ou
  Sheets("Tampon").Columns("A:D").ClearContents
  'on colle le tableau en lignes
  Sheets("Tampon").Range("A1:D" & compteur).Value = _
    Application.Transpose(table_C)
    
    
Case 1  'Restaurer = Vrai
  For i = 1 To ['Tampon'!A1].CurrentRegion.Rows.Count
    'on récupère les infos sur la feuille tampon et on applique
    With ActiveSheet.Range(Sheets("Tampon").Cells(i, 1)).Interior
      .ColorIndex = Sheets("Tampon").Cells(i, 2).Value
      .Pattern = Sheets("Tampon").Cells(i, 3).Value
      .PatternColorIndex = Sheets("Tampon").Cells(i, 4).Value
    End With
  Next
    'on efface les données de la feuille Tampon
Sheets("Tampon").Columns("A:G").ClearContents
End Select
End Sub

fred65200
 

mafaro

XLDnaute Junior
Re : lister les cellules protégées ?

je dois être vraiment un ...!
Si tu n'es pas trop pris et fatigué par ce genre de message...ci-joint le fichier que je n'arrive pas à faire fonctionner
 

Pièces jointes

  • verrou.zip
    5.7 KB · Affichages: 16
  • verrou.zip
    5.7 KB · Affichages: 14
  • verrou.zip
    5.7 KB · Affichages: 14

fred65200

XLDnaute Impliqué
Re : lister les cellules protégées ?

Ton classeur modifié.

N'hésite pas

Attention, si tu as plus de 65535 cellules, ça doit buguer
 

Pièces jointes

  • verrou.zip
    13.3 KB · Affichages: 15
  • verrou.zip
    13.3 KB · Affichages: 23
  • verrou.zip
    13.3 KB · Affichages: 18
Dernière édition:

mafaro

XLDnaute Junior
Re : lister les cellules protégées ?

Comment diminuer le nombre de cellules?

chapeau et BRAVO !!
MERCi Fred, JB , Chris, Bruno et bien sûr au forum pour lecture ...
rappel : visualiser les cellules protegées et revenir à l'état antérieur du temps cellulecolorées ou non !

Et le tout juste pour le FUN ! Mais je crois que je vais m'en servir plus souvent que prévu !
 

fred65200

XLDnaute Impliqué
Re : lister les cellules protégées ?

Si tu as plus de 65535 cellules, il faut dire à ta macro qu'elle doit continuer la boucle sur les colonnes E,F,G,H et ensuite I,J,K,L etc.

Avec cette méthode, tu seras toujours limité au nombre de cellules de ta feuille divisé par quatre.

C'est à dire qu'il te faut 4 onglets tampon1, tampon2, etc pour un onglet complet.

Je te laisse juge s'il faut continuer

NB sur Excel 2007
1 048 576 lignes
16 384 colonnes
17 179 869 184 cellules

@+
 

mafaro

XLDnaute Junior
Re : lister les cellules protégées ?

Ok j'e t'ai bien relu (élémentaire) et relu ton code. Oui j'ai compris !
Je ne saurai pas encore passer d'un tampon à l'autre dans le code (if n'est pour moi qu'un simple sapin) mais tu as fait un boulot formidable d'aide et de developpement.
Sincérement MERCI
Cordialement Mafaro
 

Discussions similaires

Statistiques des forums

Discussions
312 469
Messages
2 088 696
Membres
103 922
dernier inscrit
hhhh