Exporter les lignes d'un fichier Excel dans d'autr
Tazos27
Messages postés
72
Statut
Membre
-
Tazos27 Messages postés 72 Statut Membre -
Tazos27 Messages postés 72 Statut Membre -
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
- Fichier epub - Guide
- Fichier rar - Guide
- Liste déroulante excel - 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?