Exporter un classeur avec des onglets masqués

Bonsoir à tous

Je dispose d'un code pour masquer les onglets de mon classeur et ne les afficher que par des boutons que j'ai crée dans le ruban

Lorsque j'intègre la macro à mon fichier elle fonctionne super bien

le petit hic, c'est que j'ai deux macro qui me servent à exporter vers PDF et Excel des onglets au choix, qui du coup ne marchent plus à cause du fait que les onglets sont masqués

Vous auriez une idée de comment je peux adapter votre macro pour que les onglets choisi

Je vous joins un fichier avec les macro export

Aussi lorsque je protège par mot de passe les feuilles de mon fichier les macro m'envoient des alertes et ne fonctionnent plus

17test.xlsm (31.09 Ko)

Bonjour,

à tester,

Private Sub CmdExportPDF_Click()
Dim Chemin$, Fiche$, NomFiche$
Dim SheetArray() As Variant
Dim SheetArrayM() As Variant
Dim I&, y&, Indx&, IndxM&
    Chemin = ThisWorkbook.Path & Application.PathSeparator
    Fiche = "Test.pdf"
Indx = 0
IndxM = 0
    For I = 0 To LbFeuilles.ListCount - 1
        If LbFeuilles.Selected(I) Then
            ReDim Preserve SheetArray(Indx)
            SheetArray(Indx) = LbFeuilles.List(I)

            'liste des feuilles masquées
              If Not Sheets(LbFeuilles.List(I)).Visible Then
                 ReDim Preserve SheetArrayM(IndxM)
                 SheetArrayM(IndxM) = LbFeuilles.List(I)
                 IndxM = IndxM + 1
              End If

            Indx = Indx + 1
        End If
    Next I

    If Indx > 0 Then
      Application.ScreenUpdating = False

       For y = LBound(SheetArrayM) To UBound(SheetArrayM)
         Sheets(SheetArrayM(y)).Visible = True
       Next y

        Sheets(SheetArray()).Select
        NomFiche = Chemin & Fiche
           ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
              Filename:=NomFiche, _
              Quality:=xlQualityMinimum, _
              IncludeDocProperties:=True, _
              IgnorePrintAreas:=False, _
              OpenAfterPublish:=False
    End If

For y = LBound(SheetArrayM) To UBound(SheetArrayM)
  Sheets(SheetArrayM(y)).Visible = False
Next y

Erase SheetArray
Erase SheetArrayM

Feuil1.Activate
Unload Me
Application.GoTo [A1], True
End Sub

Merci merci

J’essaye et je vous reviens

à tester,

Bonjour I20100

J'ai testé le code et il marche bien à condition de choisir de sélectionner tous les onglets à exporter

Par contre lorsqu'on fait le choix de n'en exporter qu'un ou deux, une alerte apparait : "Erreur d'exécution 1004, impossible de définir la propriété visible de la classe worksheet"

Cette même alerte apparait lorsqu'une des feuilles est protégée et que on veut lancer l'export.

Par contre la macro pour l'export en Excel ne marche plus du tout du coup

Je vous joins le fichier

9test.xlsm (57.10 Ko)

re,

Par contre lorsqu'on fait le choix de n'en exporter qu'un ou deux, une alerte apparait : "Erreur d'exécution 1004, impossible de définir la propriété visible de la classe worksheet"

peux-tu m'indiquer quel sont les onglets qui peuvent causer un problème ?

peux-tu m'indiquer quel sont les onglets qui peuvent causer un problème ?

j'ai pris au choix l'onglet Mike et Aaron.

Mais c'est la même alerte si je prenais au choix d'autres onglets.

La macro fonctionne si je sélectionne tous les onglets du classeur à exporter. Mais dès que je fais un choix d'onglet, elle met l'erreur

re,

j'ai fais le test sur le dernier fichier joint et je ne rencontre pas ce problème,

ormit le MsgBox "La plage n'a pas....

peux-tu faire le test sur ce ficher,

10relmo-test-2.xlsm (58.81 Ko)

re,

j'ai refais le test avec un onglet protégé,

l'erreur provient de cette macro:

Private Sub userform_terminate()
Dim feuille As Worksheet
For Each feuille In Worksheets
'feuille.UsedRange.Rows.Hidden = False                 'erreur ici si l'onglet est protégé
Next feuille
End Sub

sans voir tout le fichier c'est difficile de comprendre pourquoi tu as fais cette macro

j'ai fais le test sur le dernier fichier joint et je ne rencontre pas ce problème,

C'est bizarre quand je le refais avec le fichier Relmo Test 2 je n'ai pas l'erreur non plus... C'est bizarre

Mais je remarque que les onglest ne sont plus masqués dès lors qu'on les a affiché

Par contre le message qui s'affiche c'est parce qu'aucune info n'est renseignée sur la feuille affichée à partir de la ligne 12

j'ai refais le test avec un onglet protégé,

Cette macro me permet d'afficher les lignes qui ont été masquées lors de l'export de mon fichier

En réalité, la macro export me sert à exporter sous PDF des tableaux et à masquer les lignes lorsque deux colonnes comportent simultanément 0

Et la deuxième macro me sert à afficher à nouveau ces lignes juste après l'export

peux-tu faire le test sur ce ficher,

Sur ce fichier par contre, les onglets masqués ne le sont plus dès lors qu'on les a activé une fois

re,

Sur ce fichier par contre, les onglets masqués ne le sont plus dès lors qu'on les a activé une fois

et bien oui il le sont,

le code comprend ces lignes,

For y = LBound(SheetArrayM) To UBound(SheetArrayM)
  Sheets(SheetArrayM(y)).Visible = False
Next y

et bien oui il le sont,

J'ai mis en PJ un fichier qui montre comment il s'affiche sur mon écran.

J'ai vérifié que ce code

For y = LBound(SheetArrayM) To UBound(SheetArrayM)

Sheets(SheetArrayM(y)).Visible = False

Next y

etait tjrs dans le fichier Relo tets 2 et il y était....

Et lors de la fermeture du fichier une alerte d'erreur s'affiche également

6relmo.xlsx (469.69 Ko)

Je vous joins le fichier

FICHIERS JOINTS

Test.xlsm

(57.1 Kio) Téléchargé 3 fois

Je ne sais pas si vous avez vu ce fichier

Sur celui ci l'option de choix affichait les alertes mais gardait masqués les onglets

re,

Je ne sais pas si vous avez vu ce fichier

Sur celui ci l'option de choix affichait les alertes mais gardait masqués les onglets

pourquoi revenir en arrière ?

Non c’était juste parce que sur le’ fichier Relmo test 2 je n’ai pas vu le bouton qui renvoi vers la macro Export en Excel .. j’ai donc cru que vous l’aviez pas vu

Bonjour I20100

Vous m'avez abandonné?

Rechercher des sujets similaires à "exporter classeur onglets masques"