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