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.
2 réponses
-
Bonjour à toi,
Malheureusement, ce n'est pas possible, tu peux cepandant le faire manuellement -
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-
-
-
-
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 -
-