Macro scinder une liste excel en x fichier de x lignes.
Résolu
Lucia1810
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Lucia1810 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Lucia1810 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis novice en VBA. Grâce à l'aide des réponses que des personnes ont obtenu sur d'autres forums j'ai essayer de créer ma propre macro mais j'ai une erreur 1004 : erreur définie par l'application ou par l'objet.
L'objet de ma macro: (sur excel 2007).
scinder une liste de données contenues dans une colonne, en x lignes en plusieurs fichiers que je nomme Data "n°ligne de début"-"n°ligne fin".
Sub DécoupageXlignes()
'
' DécoupageXlignes Macro
' Macro qui permet de scinder une longue liste excel en plusieurs fichiers comportant le numéro des lignes copiés dans le nom du fichier créé,
' MyBook = ActiveWorkbook.Name
' MySheet = ActiveSheet.Name
' i = 1
' Début = 2
' fin = 25000
' NbCopie = Application.RoundUp((Application.Subtotal(3, Sheets(MySheet).Range("a:a")) / fin), 0)
' For i = 1 To NbCopie
Range(Cells(Début, 2), Cells(fin, 25000)).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="Data" & Left("00" & Trim(Str(I)), 3) & "-" & Left("00" & Trim(Str(I + 99)), 3)
Windows(MyBook).Activate
Début = fin + 1
fin = fin + 25000
' Next i
End Sub
L'erreur se trouve à la ligne Range(Cells(Début, 2), Cells(fin, 25000)).Copy
D'avance je vous remercie tous pour l'aide que vous pourrez m'apporter.
Je pourrai ainsi avancer sur mon travail car là vraiment je bloque totalement.
Cordialement.
L
je suis novice en VBA. Grâce à l'aide des réponses que des personnes ont obtenu sur d'autres forums j'ai essayer de créer ma propre macro mais j'ai une erreur 1004 : erreur définie par l'application ou par l'objet.
L'objet de ma macro: (sur excel 2007).
scinder une liste de données contenues dans une colonne, en x lignes en plusieurs fichiers que je nomme Data "n°ligne de début"-"n°ligne fin".
Sub DécoupageXlignes()
'
' DécoupageXlignes Macro
' Macro qui permet de scinder une longue liste excel en plusieurs fichiers comportant le numéro des lignes copiés dans le nom du fichier créé,
' MyBook = ActiveWorkbook.Name
' MySheet = ActiveSheet.Name
' i = 1
' Début = 2
' fin = 25000
' NbCopie = Application.RoundUp((Application.Subtotal(3, Sheets(MySheet).Range("a:a")) / fin), 0)
' For i = 1 To NbCopie
Range(Cells(Début, 2), Cells(fin, 25000)).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="Data" & Left("00" & Trim(Str(I)), 3) & "-" & Left("00" & Trim(Str(I + 99)), 3)
Windows(MyBook).Activate
Début = fin + 1
fin = fin + 25000
' Next i
End Sub
L'erreur se trouve à la ligne Range(Cells(Début, 2), Cells(fin, 25000)).Copy
D'avance je vous remercie tous pour l'aide que vous pourrez m'apporter.
Je pourrai ainsi avancer sur mon travail car là vraiment je bloque totalement.
Cordialement.
L
A voir également:
- Macro scinder une liste excel en x fichier de x lignes.
- Liste déroulante excel - Guide
- Fichier bin - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fichier epub - Guide
- Direct x - Télécharger - Pilotes & Matériel
2 réponses
Bonjour
Remplacez 25000 par 16384, nombre maximum de colonnes
Range(Cells(Début, 2), Cells(fin, 16384)).Copy
Cdlt
Remplacez 25000 par 16384, nombre maximum de colonnes
Range(Cells(Début, 2), Cells(fin, 16384)).Copy
Cdlt
3 façons d'écrire la le nom du fichier
les 2 premières en attribuant la valeur 25000 et la dernière en utilisant la variable "fin " qui vaut 25000
Windows(MyBook).Activate
même problème que précédemment -Avez-vous enlever les mises en remarque (atpostrophes ou quotes) ?
Cdlt
les 2 premières en attribuant la valeur 25000 et la dernière en utilisant la variable "fin " qui vaut 25000
ActiveWorkbook.SaveAs Filename:="Data" & Left("00" & Trim(Str(i)), 3) & "-" & 25000
ActiveWorkbook.SaveAs Filename:="Data" & Left("00" & Trim(Str(i)), 3) & "-25000"
ActiveWorkbook.SaveAs Filename:="Data" & Left("00" & Trim(Str(i)), 3) & "-" & fin
Windows(MyBook).Activate
même problème que précédemment -Avez-vous enlever les mises en remarque (atpostrophes ou quotes) ?
Cdlt
J'ai trouvé, inutile de me répondre.
Je tenais à vous remercier pour votre aide.
Merci beaucoup et merci internet et CCM car je n'aurai pas eu et trouver une solution aussi rapidement.
Merci encore.
A toute fin utile et pour les personnes qui chercheraient le même genre de macro voici le code:
Sub DécoupageXlignes()
'
' DécoupageXlignes Macro
' Macro qui permet de scinder une longue liste excel en plusieurs fichiers comportant le numéro des lignes copiés dans le nom du fichier créé,
MyBook = ActiveWorkbook.Name
MySheet = ActiveSheet.Name
i = 1
Début = 2
fin = 25000
NbCopie = Application.RoundUp((Application.Subtotal(3, Sheets(MySheet).Range("a:a")) / fin), 0)
For i = 1 To NbCopie
Range(Cells(Début, 1), Cells(fin, 1)).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="Data" & Left("" & Trim(Str(i)), 10) & "-" & fin
ActiveWorkbook.Close
Windows(MyBook).Activate
Début = fin + 1
fin = fin + 25000
Next i
End Sub
Merci encore et bon week-end.
Cdlt
Je tenais à vous remercier pour votre aide.
Merci beaucoup et merci internet et CCM car je n'aurai pas eu et trouver une solution aussi rapidement.
Merci encore.
A toute fin utile et pour les personnes qui chercheraient le même genre de macro voici le code:
Sub DécoupageXlignes()
'
' DécoupageXlignes Macro
' Macro qui permet de scinder une longue liste excel en plusieurs fichiers comportant le numéro des lignes copiés dans le nom du fichier créé,
MyBook = ActiveWorkbook.Name
MySheet = ActiveSheet.Name
i = 1
Début = 2
fin = 25000
NbCopie = Application.RoundUp((Application.Subtotal(3, Sheets(MySheet).Range("a:a")) / fin), 0)
For i = 1 To NbCopie
Range(Cells(Début, 1), Cells(fin, 1)).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="Data" & Left("" & Trim(Str(i)), 10) & "-" & fin
ActiveWorkbook.Close
Windows(MyBook).Activate
Début = fin + 1
fin = fin + 25000
Next i
End Sub
Merci encore et bon week-end.
Cdlt
Je vous remercie pour cette réponse rapide et pour votre aide.
J'ai relancer la macro en pas à pas avec la modification que vous m'avez envoyer et malheureusement elle bloque toujours au même endroit.
J'ai remplacé 16384 par 1 mais j'ai toujours le même erreur.
J'avoue que je ne comprend pas.
Merci encore.
Cdlt.
' Début = 2
' fin = 25000
un fichier se créé il se nomme data000-002 (le 002 devrait être 25000) là est ma première question?
La deuxième est que la macro bloque maintenant sur la ligne
Windows(MyBook).Activate
le message d'erreur est "erreur d'exécution'9' l'indice n'appartient pas à la sélection.
Dois je remplacer MyBook par le nom du fichier source? Dans ce cas je devrais la modifier à chaque fois que j'applique la macro à un autre fichier.
Merci.