Exporter plusieurs feuilles d'un classeur Excel
roudiroud
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je voudrais savoir si il est possible d'exporter des feuilles préalablement choisient vers un autre classeur Excel ?
Sachant que je voudrais pouvoir donner le choix à l'utilisateur de choisir le nouvau nom du classeur. Avec une macro VBA.
Pensez-vous que c'est possible?
merci d'avance
Je voudrais savoir si il est possible d'exporter des feuilles préalablement choisient vers un autre classeur Excel ?
Sachant que je voudrais pouvoir donner le choix à l'utilisateur de choisir le nouvau nom du classeur. Avec une macro VBA.
Pensez-vous que c'est possible?
merci d'avance
A voir également:
- Exporter plusieurs feuilles d'un classeur Excel
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Exporter favoris chrome - Guide
- Word et excel gratuit - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
3 réponses
Bonjour,
avec le peu de précisions de votre demande, je vous propose ces quelques lignes :
Option Explicit
Sub nouv_classeur()
Dim nomclasseur1 As String, nomclasseur2 As String, feuillesàcopier As String
Dim numérodefeuilles As Integer, nombredefeuilles As Integer, feuilleencours As Integer
Dim newBook As Workbook
Dim I As Variant
nomclasseur1 = ActiveWorkbook.Name
nomclasseur2 = InputBox("Nom du classeur", "Renseignez les noms du classeur à créer")
nombredefeuilles = InputBox("Entrez un nombre", "Combien de feuilles voulez vous copier?")
feuillesàcopier = InputBox("Séparez les numéros par des virgules , ", "Renseignez les numéros de feuilles à copier")
feuillesàcopier = feuillesàcopier & ","
Set newBook = Workbooks.Add
With newBook
.SaveAs Filename:=nomclasseur2 + ".xls"
End With
nomclasseur2 = ActiveWorkbook.Name
If nombredefeuilles <= Workbooks(nomclasseur1).Sheets.Count Then
If nombredefeuilles > 1 Then
For I = 1 To nombredefeuilles
If InStr(1, feuillesàcopier, ",") = 0 Then
MsgBox "Attention une ou plusieurs feuille(s) non exportée(s) - Peut-être un oubli lors de la saisie..."
Exit For
End If
feuilleencours = Mid(feuillesàcopier, 1, InStr(1, feuillesàcopier, ",") - 1)
feuillesàcopier = Mid(feuillesàcopier, InStr(1, feuillesàcopier, ",") + 1, Len(feuillesàcopier))
Workbooks(nomclasseur1).Sheets(feuilleencours).Copy After:=Workbooks(nomclasseur2).Sheets(Sheets.Count)
Next I
Else
feuilleencours = Val(feuillesàcopier)
Workbooks(nomclasseur1).Sheets(feuilleencours).Copy After:=Workbooks(nomclasseur2).Sheets(Sheets.Count)
End If
Else: MsgBox "ATTENTION le classeur source ne contient que " & Workbooks(nomclasseur1).Sheets.Count & " feuilles / Impossible d'en exporter plus"
End If
End Sub
A votre disposition pour d'éventuels renseignements ou modifications.
Cordialement,
avec le peu de précisions de votre demande, je vous propose ces quelques lignes :
Option Explicit
Sub nouv_classeur()
Dim nomclasseur1 As String, nomclasseur2 As String, feuillesàcopier As String
Dim numérodefeuilles As Integer, nombredefeuilles As Integer, feuilleencours As Integer
Dim newBook As Workbook
Dim I As Variant
nomclasseur1 = ActiveWorkbook.Name
nomclasseur2 = InputBox("Nom du classeur", "Renseignez les noms du classeur à créer")
nombredefeuilles = InputBox("Entrez un nombre", "Combien de feuilles voulez vous copier?")
feuillesàcopier = InputBox("Séparez les numéros par des virgules , ", "Renseignez les numéros de feuilles à copier")
feuillesàcopier = feuillesàcopier & ","
Set newBook = Workbooks.Add
With newBook
.SaveAs Filename:=nomclasseur2 + ".xls"
End With
nomclasseur2 = ActiveWorkbook.Name
If nombredefeuilles <= Workbooks(nomclasseur1).Sheets.Count Then
If nombredefeuilles > 1 Then
For I = 1 To nombredefeuilles
If InStr(1, feuillesàcopier, ",") = 0 Then
MsgBox "Attention une ou plusieurs feuille(s) non exportée(s) - Peut-être un oubli lors de la saisie..."
Exit For
End If
feuilleencours = Mid(feuillesàcopier, 1, InStr(1, feuillesàcopier, ",") - 1)
feuillesàcopier = Mid(feuillesàcopier, InStr(1, feuillesàcopier, ",") + 1, Len(feuillesàcopier))
Workbooks(nomclasseur1).Sheets(feuilleencours).Copy After:=Workbooks(nomclasseur2).Sheets(Sheets.Count)
Next I
Else
feuilleencours = Val(feuillesàcopier)
Workbooks(nomclasseur1).Sheets(feuilleencours).Copy After:=Workbooks(nomclasseur2).Sheets(Sheets.Count)
End If
Else: MsgBox "ATTENTION le classeur source ne contient que " & Workbooks(nomclasseur1).Sheets.Count & " feuilles / Impossible d'en exporter plus"
End If
End Sub
A votre disposition pour d'éventuels renseignements ou modifications.
Cordialement,
Et concernant votre réponse précédente qui a disparue..... "No Comment"
Vous avez bien repondu, c'est moi qui me suis trompe precedemment.
Bonne journée à vous,
une autre facon de faire avec quelques tests et sans entrer le nombre de feuilles
Tout dependra aussi du type de choix pour les feuilles