découpe de fichier automatique

  • Initiateur de la discussion Initiateur de la discussion jv44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jv44

Guest
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 ! 😕😕😕
 
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

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 ?
 
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

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
36
Affichages
3 K
L
Réponses
10
Affichages
2 K
L
Réponses
9
Affichages
1 K
E
Réponses
7
Affichages
2 K
E
Z
Réponses
2
Affichages
913
Z
K
  • Question Question
Réponses
1
Affichages
700
P
Réponses
16
Affichages
3 K
F
Réponses
0
Affichages
2 K
frederique delavaud
F
Retour