découpe de fichier automatique

jv44

XLDnaute Junior
Bonjour à vous tous !!!

Merci d'avance à tout les courageux qui me répondrons !

Je voudrais savoir si il était possible de créer une petite maccro (dans l'idéal en add-ing) pour découper un fichier excel en plusieur fichiers (en ayant le chois du nombre de fichiers...) ...?

exemple :

un fichier de 5 000 lignes je voudrais le découper en 5 fichiers de 1 000...

Désolé si je ne suis pas très très clair, à noter que mon niveau est plus que basic sur excel ! :confused::confused::confused:
 

kjin

XLDnaute Barbatruc
Re : découpe de fichier automatique

Bonsoir,
Une vrai boucherie...
Code:
Sub zzzzzzzz()
Dim d As Range, r As Range, pfile$, x%, j%, ws As Worksheet
Set d = ActiveSheet.UsedRange
pfile = ActiveWorkbook.Path
x = d.Rows.Count
j = 1
For i = 0 To x Step 1000
    Set r = d.Offset(i).Resize(1000)
    Set ws = Sheets.Add
    r.Copy ws.Range("A1")
    ws.Copy
    Application.DisplayAlerts = False
    With ActiveWorkbook
        .SaveAs pfile & "\saucisson" & j & ".xls"
        .Close True
    End With
    ws.Delete
    Application.DisplayAlerts = True
    j = j + 1
Next
End Sub
les fichiers sont sauvegardés dans le répertoire courant, à adapter donc...
A+
kjin
 

Pièces jointes

  • jv44.zip
    134 KB · Affichages: 26

jv44

XLDnaute Junior
Re : découpe de fichier automatique

Bonsoir,
Une vrai boucherie...
Code:
Sub zzzzzzzz()
Dim d As Range, r As Range, pfile$, x%, j%, ws As Worksheet
Set d = ActiveSheet.UsedRange
pfile = ActiveWorkbook.Path
x = d.Rows.Count
j = 1
For i = 0 To x Step 1000
    Set r = d.Offset(i).Resize(1000)
    Set ws = Sheets.Add
    r.Copy ws.Range("A1")
    ws.Copy
    Application.DisplayAlerts = False
    With ActiveWorkbook
        .SaveAs pfile & "\saucisson" & j & ".xls"
        .Close True
    End With
    ws.Delete
    Application.DisplayAlerts = True
    j = j + 1
Next
End Sub
les fichiers sont sauvegardés dans le répertoire courant, à adapter donc...
A+
kjin



C'est nikel !!! merci beaucoup ! juste une question qui va surement paraitre stupide mais, comment le mettre en .xla ?
 

jv44

XLDnaute Junior
Re : découpe de fichier automatique

Bonjour bonjour,

Nouveau défit pour vous excelien (un jour j'y arriverais !).

toujours sur le meme sujet de découpe de fichiers, j'aimerais "compliquer" la tache !!

J'aimerais pouvoir inserer sur chaque fichiers générés une premiere ligne entête, en allant le chercher dans le second onglet ou en le reprenant en haut du chichier.

je vous joint un fichier d'exemple avec déjà la maccro de découpe initiale.
 

Pièces jointes

  • maccro découpe test 50-300v2.xls
    144 KB · Affichages: 28
  • maccro découpe test 50-300v2.xls
    144 KB · Affichages: 33
  • maccro découpe test 50-300v2.xls
    144 KB · Affichages: 34

kjin

XLDnaute Barbatruc
Re : découpe de fichier automatique

Bonjour,
...(un jour j'y arriverais !)
Pour sûr...
Une autre méthode à base de tableaux
Code:
Sub Decoupe()
Dim d As Range, r As Range, pfile$, x%, j%, ws As Worksheet
nb = InputBox("Combien de saucissons faut-il créer ?", "DECOUPAGE FICHIER")
If IsEmpty(nb) Or Not IsNumeric(nb) Then Exit Sub
Set d = ActiveSheet.UsedRange.Offset(1)
tablo1 = Feuil2.Range("A1", Feuil2.Range("IV1").End(xlToLeft)).Value
pfile = ActiveWorkbook.Path
x = d.Rows.Count
j = 1
Application.ScreenUpdating = False
For i = 0 To x Step Int(nb)
    tablo2 = d.Offset(i).Resize(Int(nb)).Value
    Set ws = Sheets.Add
    With ws
        .Range("A1").Resize(1, UBound(tablo1, 2)) = tablo1
        .Range("A2").Resize(UBound(tablo2, 1), UBound(tablo2, 2)) = tablo2
        Erase tablo2
        .Copy
        Application.DisplayAlerts = False 'attention: écrase les fichiers existants
        With ActiveWorkbook
            .SaveAs pfile & "\import gestes co" & j & " (Dec" & nb & ")" & ".xls"
            .Close True
        End With
        .Delete
        Application.DisplayAlerts = True
    End With
    j = j + 1
Next
Application.ScreenUpdating = True
End Sub
J'ai supprimé tous les boutons pour n'en garder qu'un et ajouté une boite de dialogue
A+
kjin
 

Pièces jointes

  • jv44_2.xls
    154.5 KB · Affichages: 30

kjin

XLDnaute Barbatruc
Re : découpe de fichier automatique

Re,
Re,
Si non peut-on envisager, par exemple, de sélectionner au préalable les lignes de la feuille1 qui serviront à l'entête ?
En fait c'est une fausse bonne idée car une fois que l'on a sélectionné les lignes qui serviront d'entête, il faut également indiquer la ligne à partir de laquelle commencent les données à exporter; plus clairement, si je sélectionne lignes 1 à 5 pour l'entête, les données commenceront-elles à la ligne 7 ou peut-être 8..., ou doit-on considérer quelles commencent toujours tout de suite après les lignes d'entête, c'est à dire ici, 6 ?
A+
kjin
 

jv44

XLDnaute Junior
Re : découpe de fichier automatique

Re bonjour :cool:

je te joins un fichier "type", c'est a dire ce à quoi devrais ressembler chaques fichiers apres découpage :rolleyes: désolé si je ne suis pas très très claire !
 

Pièces jointes

  • import type .xls
    75.5 KB · Affichages: 33

Discussions similaires

Réponses
36
Affichages
2 K

Statistiques des forums

Discussions
312 452
Messages
2 088 543
Membres
103 880
dernier inscrit
rafaelredsc