Macro scinder une liste excel en x fichier de x lignes.
Résolu/Fermé
Lucia1810
Messages postés
5
Date d'inscription
samedi 23 avril 2016
Statut
Membre
Dernière intervention
24 avril 2016
-
23 avril 2016 à 23:34
Lucia1810 Messages postés 5 Date d'inscription samedi 23 avril 2016 Statut Membre Dernière intervention 24 avril 2016 - 24 avril 2016 à 13:20
Lucia1810 Messages postés 5 Date d'inscription samedi 23 avril 2016 Statut Membre Dernière intervention 24 avril 2016 - 24 avril 2016 à 13:20
A voir également:
- Macro scinder une liste excel en x fichier de x lignes.
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fichier rar - Guide
- Excel liste déroulante en cascade - Guide
- Direct x runtime - Télécharger - Pilotes & Matériel
2 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
24 avril 2016 à 07:34
24 avril 2016 à 07:34
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
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
24 avril 2016 à 11:29
24 avril 2016 à 11:29
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
Lucia1810
Messages postés
5
Date d'inscription
samedi 23 avril 2016
Statut
Membre
Dernière intervention
24 avril 2016
24 avril 2016 à 12:41
24 avril 2016 à 12:41
Merci infiniment Frenchie83 pour votre aide.
Le problème est résolue, une toute dernière question
Que puis je rajouter afin que les fichiers créés se ferment après leur création. car cela fait beaucoup de page excel ouverte.
Merci encore pour votre gentillesse.
Cdt
Le problème est résolue, une toute dernière question
Que puis je rajouter afin que les fichiers créés se ferment après leur création. car cela fait beaucoup de page excel ouverte.
Merci encore pour votre gentillesse.
Cdt
Lucia1810
Messages postés
5
Date d'inscription
samedi 23 avril 2016
Statut
Membre
Dernière intervention
24 avril 2016
24 avril 2016 à 13:20
24 avril 2016 à 13:20
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
24 avril 2016 à 10:08
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.
24 avril 2016 à 10:12
' Début = 2
' fin = 25000
24 avril 2016 à 10:51
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.