Sauvegarde fichier suivant une sélection

Bonjour le forum

Je suis dans l'impasse sur la partie sauvegarde de mon fichier.

Le but:

Faire une sauvegarde des feuilles qui possèdent en cellule G3 à G300 une valeur (Non vide)

En premier je réalise un filtre a partir de la feuille 3 jusqu’à la dernière suivant la valeur de CBO_Maintenance avec ce code:

Private Sub BTNEXTRACTION_Click()
Dim I%, y%

        If CBO_Maintenance = "" Then    'vérifie que le service de maintenance est n'est pas vide
            MsgBox "Veuillez sélectionner un service de maintenance", vbExclamation, "Message Erreur"   'Pas de sélection alors message et sortie de procédure
Exit Sub
        Else
            For I = 3 To Worksheets.Count    'Boucle sur toutes les feuilles et mise en place du Filtre
                 With Sheets(I)
                  .Range("B3").AutoFilter Field:=6, Criteria1:=CBO_Maintenance.Value, Operator:=xlAnd   'Opération sur filtre terminé
                End With
            Next
                  MsgBox "Opération filtre sur" & " " & Me.CBO_Maintenance.Value & " " & "est effectué", vbInformation  '
       End If
End Sub

en second, je réalise la sauvegarde des feuilles qui possèdent une valeur en G3 à G300 avec ce code.

Private Sub Btn_SaveFichierPDF_Click()

Dim LaDate As String
Dim LeNFichier As String
Dim LeRep As String
Dim I As Integer

    Application.ScreenUpdating = False

        Rep = MsgBox("Etes-vous certain de vouloir Enregistrer sous ce nom ?", vbYesNo + vbQuestion, "Sauvegarde du Fichier en  PDF ")

    If Rep = vbYes Then     ' Si réponse positive alors faire la sauvegarde de toutes les feuilles visibles

        LeRep = Sheets("DATA").Range("B2").Value   'Répertoire de destination pour la sauvegarde'
        LeNFichier = (FRM_Gestion.Txt_Datesave.Value & "_" & FRM_Gestion.TxtNom_Fichier.Value) 'Nom du fichier de sauvegarde

        MsgBox (FRM_Gestion.Txt_Datesave.Value & "_" & FRM_Gestion.TxtNom_Fichier.Value)    'Affichage chemin et nom du fichier

       On Error Resume Next

    For I = 1 To Sheets.Count   'Début de la sélection des feuilles de sauvegarde suivant si G3 n'est pas vide
        If I < 3 Then
            Sheets(I).Visible = False   'Les 3er feuilles sont cachées
        Else
            Sheets(I).Visible = False   ' Les feuilles sont cachées
                For Each Cell In Sheets(I).Range("g3:G300") 'Pour chaque feuilles
        If Not Cell = "" Then Sheets(I).Visible = True
        Next Cell
    End If
    Next I
       ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=LeRep & LeNFichier & ".pdf"  'Sauvegarde du fichier en format PDF

    For I = 1 To Sheets.Count
    Sheets(I).Visible = True
    Next I

        Else

        If Rep = vbNo Then Exit Sub   ' Si réponse Négative sortie de procédure

        End If
                MsgBox "Sauvegarde PDF réalisée", vbInformation

            Sheets(2).Visible = True

            For I = 3 To Sheets.Count
                With Sheets(I)
                    .Range("B3").AutoFilter Field:=6         'Suppression du filtre des Tableaux de toutes les feuilles
                End With
            Next

                Sheets(2).Activate  'Le fichier se repossitionne en feuille 2

             Application.ScreenUpdating = True

End Sub

Je rencontre un problème quand en G3 la valeur est différente.

Si j'ai ELEC en G3 dans la feuille 3 et PIPE en G3 dans la feuille 5, alors j'ai 2 feuilles en sauvegarde.

L'opération

Private Sub BTNEXTRACTION_Click()

Fait bien la sélection.

Il y a bien une seule feuille avec le mot ELEC

Par contre en sauvegarde, j'ai 2 feuilles

Une avec le mot ELEC et l'autre sans rien en G3 (Que l'ent^te du tableau)

En espérant que ma description soit comprise par vous

Re le Forum

Problème résolu

Pourquoi, je n'y ai pensé avant.

J'attends pour clôturer le sujet, si jamais javais une autre proposition.

A bientôt

Bonjour le Forum

Comme promis voici la solution que j'ai faite pour avoir la sauvegarde du fichier suivant la sélection dans textbox.

Avant, j’utilisai ce code ( ric me l'avais donné, et je le remercie de nouveau)

  Sheets(I).Visible = False   ' Les feuilles sont cachées
                For Each Cell In Sheets(I).Range("g3:G300") 'Pour chaque feuilles
        If Not Cell = "" Then Sheets(I).Visible = True
        Next Cell
    End If

J'ai remplacé par

 Sheets(I).Visible = False   ' Les feuilles sont cachées
                For Each Cell In Sheets(I).Range("g3:G300") 'Pour chaque feuilles
        If Cell = CBO_Maintenance.Value Then Sheets(I).Visible = True   'La feuille est visible
        Next Cell
    End If

CBO_Maintenance me permet de "fixer"la bonne valeur.

Voilà

Bonne fin de journée à tous

Rechercher des sujets similaires à "sauvegarde fichier suivant selection"