Règle de protection de feuille
Bonjour à tous,
J'ai une macro en VBA qui me permet d'ôter et de protéger automatiquement toutes les feuilles de mon classeur excel (code trouvé sur ce forum d'ailleurs)
J'ai imbriqué ce code dans une macro qui me permet de faire la maj de mes feuilles. Mais pendant la maj de mes feuilles, excel change la mise en forme des colonnes/lignes ce qui rend les tableau plus vraiment lisible car elles deviennent toutes petites.
Je sais que lorsque l'on met une protection feuille par feuille, on peut choisir les autorisations qu'on les utilisateurs sur la feuille, notamment modifier les mises en forme de ligne/colonne/cellule. Mais le faisais via une macro cela ne prend pas du tout en compte ces critères et où les seuls paramètres possibles sont sélection de la feuille/sélection de cellules.
J'ai essayé de mettre une protection une par une avec les bons paramètres en espérant que excel les garde en mémoire, mais à chaque passage de ma macro cela réinitialise aux paramètres de base.
Y a t'il donc un moyen soit via du code VBA soit via une sorte de paramètre à modifier du style "autorisation par défaut lors de la protection d'une feuille" pour autoriser les utilisateurs à modifier la mise en forme des lignes/colonnes sur une feuille protégée.
Voici le code de protection/déprotection de mes feuilles
Sub Ouverture_MaJ_Fermeture()
'
' Ôte la protection de toutes les feuilles
' Ouvre tous les plans de charges
' Réalise la mise à jour des plans de charges dans le classeur Master_Project
' Ferme tous les plans de charges
' Mise en place de la protection de toutes les feuilles
'
'
' Déprotection automatique de toutes les feuilles du classeur
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Oter la protection de toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:=Motdepasse
Next i
With ThisWorkbook
' Ouverture des classeurs projet contenant les plans de charge
Workbooks.Open ("C:\Users\apadelle\Documents\Plan de charge\Picard.xlsx")
Workbooks.Open ("C:\Users\apadelle\Documents\Plan de charge\Sephora_RTLE.xlsx")
Workbooks.Open ("C:\Users\apadelle\Documents\Plan de charge\Sephora_UPGRADE.xlsx")
' Mise à jour du classeur Master_Project
Windows("Master_Project_CdS.xlsx").Activate
ActiveWorkbook.RefreshAll
' Fermeture des classeurs projet contenant les plans de charge
Windows("Picard.xlsx").Close
Windows("Sephora_RTLE.xlsx").Close
Windows("Sephora_UPGRADE.xlsx").Close
End With
' Protection automatiques des feuilles du classeur avec le mot de pas précédemment rentré
For j = 1 To nombre
Worksheets(j).Protect Password:=Motdepasse
Next j
End Sub
Sub Deprotection()
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Oter la protection de toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:=Motdepasse
Next i
End Sub
Sub Protection()
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre en place la protection de toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:=Motdepasse
Next i
End SubMerci d'avance pour votre aide !!
Pour solutionner mon problème j'ai inclu des lignes de mise en forme dans mon code, comme ça elle se fait et la personne n'a de toute manière plus besoin d'y toucher
Voici le code utilisé :
Sub mise_en_forme()
'
' mise_en_forme Macro
'
Sheets("Feuil1").Select
Cells.Select
Cells.EntireColumn.AutoFit
Cells.EntireRow.AutoFit
End Sub