Selectionner plusieurs feuilles et enregistrer sous

Bonjour à toutes et tous,

J'essaie de trouver une ligne de code pour pouvoir sélectionner plusieurs feuilles sauf UNE, puis faire "enregistrer sous" et ne pas "enregistrer les modifications" du fichier de base. Sur ce fichier, j'ai 7 onglets et je ne voudrais pas garder la première feuille "base".

Les lignes de codes que j'ai, font que cela me sélectionne toutes mes feuilles, au lieu de me garder les 6, l'enregistrer sous fonctionne, par contre "ne pas enregistrer" à du mal...

Si vous avez une idée

Private Sub CommandButton7_Click()
Dim i&
For i = 1 To Sheets.Count
If Sheets(i).Name <> "BASE" Then Sheets(i).Select False
Next i
Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close False
End Sub

Bonjour sam_saoul,

Voici une proposition :

Private Sub CommandButton7_Click()
    FichierInitial = ActiveWorkbook.Name
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "BASE" And FichierFinal = "" Then
            Sheets(i).Copy
            FichierFinal = ActiveWorkbook.Name
        Else
            Sheets(i).Copy After:=Workbooks(FichierFinal).Worksheets(Workbooks(FichierFinal).Worksheets.Count)
        End If
        Workbooks(FichierInitial).Activate
    Next i
    ActiveWorkbook.Close False
    Workbooks(FichierFinal).Activate
    Application.Dialogs(xlDialogSaveAs).Show
End Sub

Bonjour Antoine,

J'ai testé et il me retourne une erreur d'exécution 9...

2021 03 15 17h54 21 2021 03 15 17h53 39

Voici le code modifié :

Private Sub CommandButton7_Click()
    FichierInitial = ActiveWorkbook.Name
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "BASE" Then
            If FichierFinal = "" Then
                Sheets(i).Copy
                FichierFinal = ActiveWorkbook.Name
            Else
                Sheets(i).Copy After:=Workbooks(FichierFinal).Worksheets(Workbooks(FichierFinal).Worksheets.Count)
            End If
        End If
        Workbooks(FichierInitial).Activate
    Next i
    Workbooks(FichierFinal).Activate
    Application.Dialogs(xlDialogSaveAs).Show
    ActiveWorkbook.Close False
End Sub

Bonjour Antoine,

testé ce matin et cela fonctionne ! Nickel

Merci

Entre-temps, j'ai fouillé un peu et j'ai trouvé ceci qui fonctionne également pour ma part.

Worksheets(Array(2, 3, 4, 5, 6, 7)).Copy

Application.Dialogs(xlDialogSaveAs).Show

ActiveWorkbook.Close False
End Sub

Je pense que le code d'Antoine ne tient pas compte du nombre de feuilles dans le classeur, d'où son utilité.

Rechercher des sujets similaires à "selectionner feuilles enregistrer"