Exporter plusieurs feuilles d'un classeur Excel
Fermé
roudiroud
Messages postés
31
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
7 juin 2016
-
Modifié par roudiroud le 20/05/2016 à 14:21
f894009 Messages postés 17223 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 janvier 2025 - 24 mai 2016 à 18:13
f894009 Messages postés 17223 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 janvier 2025 - 24 mai 2016 à 18:13
A voir également:
- Exporter plusieurs feuilles d'un classeur Excel
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Fusionner plusieurs feuilles excel en une seule - Guide
- Si et excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
3 réponses
f894009
Messages postés
17223
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
10 janvier 2025
1 712
Modifié par f894009 le 24/05/2016 à 16:43
Modifié par f894009 le 24/05/2016 à 16:43
erreur de personne .................
f894009
Messages postés
17223
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
10 janvier 2025
1 712
22 mai 2016 à 09:23
22 mai 2016 à 09:23
Bonjour,
Comment sont choisies les feuilles ???
Comment sont choisies les feuilles ???
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,
Modifié par Stif le 24/05/2016 à 17:01
Et concernant votre réponse précédente qui a disparue..... "No Comment"
Modifié par f894009 le 24/05/2016 à 17:17
Vous avez bien repondu, c'est moi qui me suis trompe precedemment.
24 mai 2016 à 17:14
Bonne journée à vous,
Modifié par f894009 le 24/05/2016 à 18:20
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