Division d'un fichier global en plusieurs petits fichiers
Bonjour le forum,
J’ai encore besoin une nouvelle fois d’aide
Je m’explique. Dans un fichier qui comporte plus de 300 lignes je souhaiterai le scinder en autant de petits fichiers qu'il y a de noms différents dans la colonne 4. Ces fichiers doivent avoir le même nom que celui de la colonne 4 et se situés dans un répertoire commun appelé « répartition ».
Je ne sais si je m’explique bien donc je vous donne un exemple. Dans le fichier test de 20 lignes en PJ je dois me retrouver avec 5 petits fichiers car j’ai cinq noms différents dans la colonne 4. Il y aurait par exemple le fichier « MOBI.xls » qui reprendrait toutes les infos des 5 lignes (surlignées en jaune pour l’exemple) « L1 à L5 » et L13 car on trouve « MOBI » en colonne 4. Ce fichier serait dans le répertoire « répartition ».
Le nombre de noms différents dans la colonne 4 n’est pas connu mais il ne devrait pas dépasser 40 ce qui signifie qu’au maximum il y aurait 40 petits fichiers dans le répertoire « répartition » en plus du fichier principal.
En espérant qu’une solution me soit proposée, je vous remercie par avance.
Bonjour philippe
Perso je poserai des questions :
que voulez-vous faire exactement de ces 5 fichiers par la suite ?
pourquoi ne pas faire des onglets différents ?
A+
Salut BrunoM45,
Pourquoi je souhaite scinder ce fichier en petits fichiers correspondant à la valeur de la colonne 4 ? Tout simplement pour transmettre ces derniers aux personnes qui devront travailler dessus et dont leurs domaines de travail correspondent au nom de la colonne 4. En clair la personne qui traite "MOBI" n'a pas à avoir accès aux infos qui concernent "UTILITAIRE" par exemple.
Après plusieurs recherche j'ai trouvé une macro que j'ai adaptée partiellement à mon fichier. Elle fait une partie du travail à savoir me scinder le fichier principal en autant de "petits fichiers" mais dans le même répertoire que le fichier principal et non pas un répertoire appelé « répartition » en nommant ces fichiers avec le nom de la colonne "A" et non pas celui de la colonne D.
Ce qui faudrait mais je n'arrive pas à le faire c'est qu'au-lieu de prendre le nom de la colonne A pour nommer les "petits fichiers", la macro me prenne celui de la colonne D (colonne 4) et au-lieu de commencer son exécution en ligne 3 elle commence en ligne 1. Pour le répertoire si je ne peux pas avoir la création d'un avec le nom « répartition » lors de l'exécution de la macro, je me débrouillerai autrement en mettant directement le fichier principal dans un répertoire ayant ce nom et en exécutant la macro à ce moment là
La macro en question que j'ai mise dans le nouveau fichier en PJ :
Sub CreationFichiers()
Dim Mondico As Object
Dim DicoKey
Dim J As Long, NbLg As Long
Dim Chemin As String
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path & Application.PathSeparator
NbLg = Range("A" & Rows.Count).End(xlUp).Row
Set Mondico = CreateObject("Scripting.dictionary")
For J = 4 To NbLg
Mondico(Range("A" & J).Value) = ""
Next J
With Sheets("Feuil2")
.Cells.Clear
Range("A1:P2").Copy .Range("A1")
Range("B" & NbLg + 5) = Range("A3")
For Each DicoKey In Mondico.keys
Range("B" & NbLg + 6) = DicoKey
Range("A3:P" & NbLg).AdvancedFilter Action:=xlFilterCopy, _
criteriarange:=Range("B" & NbLg + 5).Resize(2, 1), _
copytorange:=.Range("A3:P3")
.Copy
With ActiveWorkbook
.Sheets(1).Name = DicoKey
Application.DisplayAlerts = False
.SaveAs Chemin & "Fichier " & DicoKey
Application.DisplayAlerts = True
.Close
End With
Next DicoKey
.Cells.Clear
End With
Range("B" & NbLg + 5).Resize(2, 1).ClearContents
MsgBox "Création des fichiers terminée"
Application.ScreenUpdating = True
End SubJe pense qu'au regard de la macro que pour certains ce que je n'arrive pas à voir sera une évidence mais quand on ne trouve pas on ne trouve pas
Bonjour à tous !
Avez-vous étudié la piste Power Query ? (Complément gratuit Microsoft à installer pour Excel 2010 et 2013. Nativement intégré dans les versions postérieures)
En quelques clics (...), la requête sera opérationnelle. A dupliquer en tant que de besoin en modifiant le filtre.
Bonjour JFL,
Avec PQ il y aurai trop de requêtes à dupliquer. Le nombre de petits fichiers pouvant être de 40 cela signifierait qu'il faudrait que je créée 40 requêtes...
En plus avec PQ si extraire les infos correspondant à un critères est assez simple mais lui faire créer un fichier automatiquement je ne suis pas sûr que c'est possible en tout cas je ne sais pas faire.
Une macro me semble peut-être dans ce cas la plus adapter mais l'idée de PQ est une piste éventuelle.
Bonjour à tous de nouveau !
Une requête identique avec un simple critère de filtre à modifier. Le tout.... une seule fois. Après c'est l'affaire d'une simple actualisation des données (données filtrées automatiquement intégrées dans le classeur individualisé).
Bonsoir,
Je clôture le sujet. La macro même si pas adaptée vraiment à ce que je voulais a pu faire quand même le TAF.
Bonsoir à tous !
Je clôture le sujet. La macro même si pas adaptée vraiment à ce que je voulais a pu faire quand même le TAF.
Tant mieux !
Je vous remercie de ce retour.