Bonjour,
Voici mon problème :
Dans mon excel j'ai fait une macro qui me permet d'afficher uniquement certaine colonne :
Elle fonctionne très bien sauf depuis que j'ai fait une macro qui me permet de vérouiller les onglets (en gardant la possibilité de mettre en forme les cellules, lignes et colonnes) :
Avec la protéction ma macro d'affichage bug et me donne ce message d'erreur :
Impossible de définir la propriété Hidden de la classe Range
Si quelqu'un sais pourquoi je veux bien de l'aide. Merci d'avance
P.S : Sur un onglet je cache des lignes avec des bouton à bascule qui fonctionne avec cette protection. J'ai essayé de transformer ma macro affichage avec des bouton à bascule mais j'arrive pas à les codé pour qu'il agissent sur toutes les feuilles sauf 2. Peut-être que c'est une solution...
Donc voilà je vous remercie par avance pour votre aide.
Voici mon problème :
Dans mon excel j'ai fait une macro qui me permet d'afficher uniquement certaine colonne :
Code:
Sub Affichage()
Dim Sh As Worksheet, Ws As Worksheet
Set Sh = Sheets("Affichage")
For Each Ws In ActiveWorkbook.Worksheets
If Ws.Name <> Sh.Name And Ws.Name <> "taux" And Ws.Name <> "suivi pays" And Ws.Name <> "MaJ" Then
Ws.Columns.Hidden = False
Ws.Columns("E:I").Hidden = Sh.Range("$G$2") = FAUX
Ws.Columns("K:O").Hidden = Sh.Range("$G$3") = FAUX
Ws.Columns("Q:Y").Hidden = Sh.Range("$G$4") = FAUX
Ws.Columns("W:AA").Hidden = Sh.Range("$G$5") = FAUX
Ws.Columns("AC:AG").Hidden = Sh.Range("$G$6") = FAUX
Ws.Columns("AI:AM").Hidden = Sh.Range("$G$7") = FAUX
Ws.Columns("AO:AS").Hidden = Sh.Range("$G$8") = FAUX
Ws.Columns("AU:AY").Hidden = Sh.Range("$G$9") = FAUX
Ws.Columns("BA:BE").Hidden = Sh.Range("$G$10") = FAUX
Ws.Columns("BG:BK").Hidden = Sh.Range("$G$11") = FAUX
Ws.Columns("BM:BQ").Hidden = Sh.Range("$G$12") = FAUX
Ws.Columns("BS:BW").Hidden = Sh.Range("$G$13") = FAUX
Ws.Columns("BY:CC").Hidden = Sh.Range("$G$14") = FAUX
Ws.Rows("115:166").Hidden = Sh.Range("$H$3") = FAUX
End If
Next Ws
End Sub
Elle fonctionne très bien sauf depuis que j'ai fait une macro qui me permet de vérouiller les onglets (en gardant la possibilité de mettre en forme les cellules, lignes et colonnes) :
Code:
Sub Protéger()
' Protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:=Motdepasse
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
Next i
End Sub
Avec la protéction ma macro d'affichage bug et me donne ce message d'erreur :
Impossible de définir la propriété Hidden de la classe Range
Si quelqu'un sais pourquoi je veux bien de l'aide. Merci d'avance
P.S : Sur un onglet je cache des lignes avec des bouton à bascule qui fonctionne avec cette protection. J'ai essayé de transformer ma macro affichage avec des bouton à bascule mais j'arrive pas à les codé pour qu'il agissent sur toutes les feuilles sauf 2. Peut-être que c'est une solution...
Donc voilà je vous remercie par avance pour votre aide.