Exporter les lignes d'un fichier Excel dans d'autr

Fermé
Tazos27 Messages postés 62 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 24 juin 2020 - 20 avril 2018 à 10:09
Tazos27 Messages postés 62 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 24 juin 2020 - 20 avril 2018 à 15:00
Bonjour,
je me permets de vous solliciter car j'ai un fichier Excel de 3800 lignes, et je souhaiterais le découper en plusieurs fichiers Excel de 50 lignes tout en gardant la première ligne sur chaque fichier.
Est-ce possible?

Merci par avance.

2 réponses

Guillaumeys Messages postés 74 Date d'inscription jeudi 19 avril 2018 Statut Membre Dernière intervention 21 avril 2018 11
20 avril 2018 à 10:16
Bonjour à toi,

Malheureusement, ce n'est pas possible, tu peux cepandant le faire manuellement
0
Pierr10 Messages postés 8701 Date d'inscription mardi 13 février 2018 Statut Contributeur Dernière intervention 2 octobre 2022 4 225
20 avril 2018 à 10:33
Et ça fait 76 fichiers ! Bon courage ...
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 27
Modifié le 20 avril 2018 à 10:34
Bonjour,
C'est possible avec du VBA, mais il y aura beaucoup de fichier. Par contre on peut le split en différentes feuilles ?
0
Tazos27 Messages postés 62 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 24 juin 2020 4
20 avril 2018 à 10:37
Bonjour, merci pour vos réponses, s'il faut le split en plusieurs feuilles cela me va, après il faudra exporter les feuilles :)
Comment split en plusieurs feuilles?
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 27
Modifié le 20 avril 2018 à 11:18
Bonjour,

Testé sur 1000 lignes, a essayer sur votre document.

ATTENTION : Le fichier source est découpé et donc détruit. Pensez à faire une sauvegarde de votre fichier avant de lancer la macro. Les nouveaux classeurs seront enregistrés dans le dossier où le fichier source est enregistré. Le format recommandé pour le fichier est .xlsx

Sub AddSheets()
Application.EnableEvents = False

Dim wbNew As Workbook
Dim wsSource As Worksheet
Dim wb As Workbook
Dim sheetCount As Integer
Dim rowCount As Integer
Dim splitlignes As Integer
Dim strFilename As String


Set wsSource = ActiveSheet
Set wb = ActiveWorkbook

splitlignes = 50
rowCount = Application.CountA(Sheets(1).Range("A:A"))
sheetCount = Round(rowCount / splitlignes, 0)

Dim i As Integer

For i = 1 To sheetCount - 1 Step 1
With wb
    .Sheets.Add after:=.Sheets(.Sheets.Count)

     wsSource.Range("A1:Z1").EntireRow.Copy Destination:=Sheets(.Sheets.Count).Range("A1").End(xlUp)

    wsSource.Range("A" & (splitlignes + 2) & ":Z" & (2 * splitlignes + 1)).EntireRow.Cut Destination:=Sheets(.Sheets.Count).Range("A" & Rows.Count).End(xlUp).Offset(1)
    wsSource.Range("A" & (splitlignes + 2) & ":Z" & (2 * splitlignes + 1)).EntireRow.Delete

    ActiveSheet.Name = "Lignes " + CStr(((.Sheets.Count - 1) * splitlignes + 1)) & " - " & CStr((.Sheets.Count * splitlignes))
End With

Next

wsSource.Name = "Lignes 1 - " & splitlignes

    For Each ws In wb.Worksheets
        strFilename = wb.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename
        wbNew.Close
    Next ws

Application.EnableEvents = True

End Sub


Pour l'ajouter au fichier > Alt + F11 > clic droit dans ton projet dans l'arborescence à gauche > Insert > Module et copier le code. Il faut également être sur la feuille source avant de lancer la macro
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 27
20 avril 2018 à 11:17
PS : Changer la valeur de splitlignes pour augmenter ou diminuer le nombre de lignes
0
Tazos27 Messages postés 62 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 24 juin 2020 4
20 avril 2018 à 11:49
Jauster!!!! tu es mon Dieu!!! Merci c'est top j'ai changer le splitline en 49, par contre le premier fichier créé est en 71 lignes je ne sais pas pour quoi mai cela me va très bien comme çà merci beaucoup!!
0
Tazos27 Messages postés 62 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 24 juin 2020 4
20 avril 2018 à 12:27
Jauster, une dernière petite demande, est-ce possible que les fichiers créés s'enregistrent en version classeur excel 97-2003 plutôt que .xlsx?
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 27
Modifié le 20 avril 2018 à 13:28
Re,

Oui il suffit de remplacer :
    For Each ws In wb.Worksheets
        strFilename = wb.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename
        wbNew.Close
    Next ws


par :

    For Each ws In wb.Worksheets
        strFilename = wb.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename, FileFormat:=xlWorkbookNormal
        wbNew.Close
    Next ws
0
Tazos27 Messages postés 62 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 24 juin 2020 4
20 avril 2018 à 15:00
Un grand merci à toi Jauster, cela va me faciliter la vie ;)
0