XL 2013 Afficher et Masquer des lignes sur des feuilles protégées

momo

XLDnaute Occasionnel
Bonjour à tous,

Je dispose d'une macro qui sous certaines conditions, masquent le contenu de certaines lignes lors d'un export du fichier sous PDF

Une autre macro est chargée d'afficher à nouveau ces lignes dès lors que l'export est réalisé.

Mon soucis est celui-ci: j'ai l'intention de protéger a feuille pour éviter que les formules soient modifiées.

Dès que je le fais, les macro beuguent et renvoeint une alerte de type "Erreur 1004"

Je voudrais la possibilité de sauter la protection de la feuille lorsque l'export est lancée et que la feuille se protège à nouveau après l'export et après que la macro chargée de réafficher les lignes les ai fait (C'est à ce niveau que ca plante)

Merci d'avance
 

Pièces jointes

  • TestV2.xls
    105.5 KB · Affichages: 16

cathodique

XLDnaute Barbatruc
Bonjour, à tester
VB:
Private Sub CmdExportPDF_Click()
   Dim Chemin$, Fiche$, NomFiche$
   Dim SheetArray() As Variant
   Dim I&, Indx&
   Chemin = ThisWorkbook.Path & Application.PathSeparator
   Fiche = "TestV2"
   Indx = 0
   For I = 0 To LbFeuilles.ListCount - 1
      If LbFeuilles.Selected(I) Then
         ReDim Preserve SheetArray(Indx)
         SheetArray(Indx) = LbFeuilles.List(I)
         Indx = Indx + 1
      End If
   Next I

   If Indx > 0 Then
      Application.ScreenUpdating = False
      Sheets(SheetArray()).Select
      Sheets(SheetArray()).Unprotect 123  'mettre ton mot de passe
      NomFiche = Chemin & Fiche
      ActiveSheet.PageSetup.Orientation = xlLandscape
      ActiveSheet.PageSetup.Zoom = False
      ActiveSheet.PageSetup.FitToPagesTall = 1
      ActiveSheet.PageSetup.FitToPagesWide = 1
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                      Filename:=NomFiche, _
                                      Quality:=xlQualityMinimum, _
                                      IncludeDocProperties:=True, _
                                      IgnorePrintAreas:=False, _
                                      OpenAfterPublish:=False
      Sheets(SheetArray()).Protect 123 'mettre ton mot de passe
   End If
   Erase SheetArray

   Feuil1.Select
   Unload Me
   Application.GoTo [A1], True
End Sub
Bon dimanche.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof