Exporter les lignes d'un fichier Excel dans d'autr
Tazos27
Messages postés
64
Date d'inscription
Statut
Membre
Dernière intervention
-
Tazos27 Messages postés 64 Date d'inscription Statut Membre Dernière intervention -
Tazos27 Messages postés 64 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Exporter les lignes d'un fichier Excel dans d'autr
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
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
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
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
Re,
Oui il suffit de remplacer :
par :
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
C'est possible avec du VBA, mais il y aura beaucoup de fichier. Par contre on peut le split en différentes feuilles ?
Comment split en plusieurs feuilles?