XL 2016 Scinder fichiers Excel en plusieurs fichiers

  • Initiateur de la discussion Initiateur de la discussion clem312
  • 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 !

clem312

XLDnaute Nouveau
Bonjour,

Je cherche à scinder un fichier Excel en plusieurs fichiers.
Sur le forum j'ai trouvé cette super macro de @mapomme
Par contre, cette macro réplique la 1ère ligne du fichier initiale dans chaque fichier généré.
J'ai besoin que la macro ne réplique pas la 1ère colonne mais je n'y arrive pas 😬

Clément
 

Pièces jointes

Solution
Bonsoir Clem, bonsoir le forum,

Si je n'avions pas mélangé trop mes pinceaux ça devrait donner :

VB:
Sub découper()
Dim derlig&, dercol&, prefixe, nom$, n&, nbfic&
Dim F1, F2, i&, i1&, i2&, newclas, first

Application.ScreenUpdating = False
Set F1 = ThisWorkbook.Sheets("Feuil1")
Set F2 = ThisWorkbook.Sheets("Feuil2")
With F2
    derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
    dercol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    nbfic = (derlig - 1) \ F1.Range("b3") - ((((derlig - 1) Mod F1.Range("b3"))) > 0)
End With
With F1
    prefixe = ThisWorkbook.Path
    If Right(prefixe, 1) <> "\" Then prefixe = prefixe & "\"
    prefixe = prefixe & .Range("b1")
    On Error Resume Next: MkDir prefixe: On Error GoTo 0
    If...
Bonsoir Clem, bonsoir le forum,

Si je n'avions pas mélangé trop mes pinceaux ça devrait donner :

VB:
Sub découper()
Dim derlig&, dercol&, prefixe, nom$, n&, nbfic&
Dim F1, F2, i&, i1&, i2&, newclas, first

Application.ScreenUpdating = False
Set F1 = ThisWorkbook.Sheets("Feuil1")
Set F2 = ThisWorkbook.Sheets("Feuil2")
With F2
    derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
    dercol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    nbfic = (derlig - 1) \ F1.Range("b3") - ((((derlig - 1) Mod F1.Range("b3"))) > 0)
End With
With F1
    prefixe = ThisWorkbook.Path
    If Right(prefixe, 1) <> "\" Then prefixe = prefixe & "\"
    prefixe = prefixe & .Range("b1")
    On Error Resume Next: MkDir prefixe: On Error GoTo 0
    If Right(prefixe, 1) <> "\" Then prefixe = prefixe & "\"
    prefixe = prefixe & .Range("b2")
    prefixe = prefixe & "-"
End With

With F2
    i1 = 2: i2 = i1 + F1.Range("b3") - 1
    Set newclas = Workbooks.Add
    Do
        '.Range("a1").Resize(, dercol).Copy newclas.Sheets(1).Range("a1")
        .Range(.Cells(i1, "a"), .Cells(i2, dercol)).Copy newclas.Sheets(1).Range("a1")
        newclas.Sheets(1).Range("a1").Resize(, dercol).EntireColumn.AutoFit
        Application.DisplayAlerts = False
        n = n + 1
        Application.StatusBar = "fichier n° " & n & " / " & nbfic
        nom = prefixe & Left("0000", 4 - Len("" & n)) & n & ".xlsx"
        newclas.SaveAs Filename:=nom, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        Application.DisplayAlerts = True
        If IsEmpty(first) Then first = nom
        i1 = i1 + F1.Range("b3"): i2 = i2 + F1.Range("b3")
        If i1 > derlig Then Exit Do
        newclas.Sheets(1).UsedRange.Clear
    Loop
End With
newclas.Close SaveChanges:=False
Application.StatusBar = False
MsgBox "Création de " & n & " fichiers terminée !" & vbLf & vbLf & _
"depuis  " & vbLf & first & vbLf & vbLf & _
"jusqu'à " & vbLf & nom, vbInformation
End Sub
 
Re,

Très étonné car je n'ai fait que supprimer le copier/coller de la première ligne. Je ne vois pas en quoi cela influencerait sur la hauteur et la largeur des cellules et sur le fait de ne pas copier la colonne B... Mais j'avoue que je n'ai pas testé. La flemme...
 
Re,

Très étonné car je n'ai fait que supprimer le copier/coller de la première ligne. Je ne vois pas en quoi cela influencerait sur la hauteur et la largeur des cellules et sur le fait de ne pas copier la colonne B... Mais j'avoue que je n'ai pas testé. La flemme...
Bonjour @Robert

Ah oui, au temps pour moi. J'ai passé la macro sur un fichier ou il y a des cellules fusionnés et les colonnes après la 1ere sautent...
Je mets le fichier en PJ si vous avez une idée.

Clément
 

Pièces jointes

- 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

Discussions similaires

Retour