XL 2016 Division fichier .xslx (multi-onglets) en plusieurs classeurs (multi-onglets)

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 !

gregomex

XLDnaute Nouveau
Bonjour à tous,

J'ai fait le tour des forum sans réellement trouver de solution à cette problématique : enregistrer un fichier "sous" en incluant tous les onglets du classeur et les formules associées (TCD principalement)

Je m'explique :
  • Mon fichier contient un onglet "bdd" et plusieurs onglets de TCD.
  • L'objectif est de créer autant de fichiers que de valeurs uniques trouvées en colonne "xxx" situées dans mon onglet "bdd" (filtrer en fonction de la valeur)
  • valeur = "bernard" --> filtrer sur "bernard" et enregistrer le fichier sous "bernard".xlsx.
Ce que j'ai pu voir jusqu'à présent, ce sont des macros qui effectivement créent des fichiers mais jamais ne reprennent les onglets attachés au fichier de base.
Ce que je cherche finalement, c'est :
  • créer un fichier en fonction de ces critères
  • actualiser les données
  • enregistrer le fichier
  • boucler
Merci par avance pour votre contribution !

Greg
 
Voici un fichier xlsm contenant une macro qui fait le travail demandé.
Il faut inscrire en B1 de la feuille Param le nom du fichier xlsx que l'on veut traiter.
Ce fichier doit contenir une feuille nommée "Bdd" contenant un tableau structuré dont on filtre les lignes en fonction du contenu de la 1ère colonne..
Tous les fichiers (y compris les fichiers générés) sont dans le même répertoire.
Les fichiers résultants sont écrasés à chaque exécution.
Je recommande de créer un repertoire propre à l'application où on retrouvera tous les fichiers.
 

Pièces jointes

Bonjour Laurent,

Je viens de tester le script.
Ce que j'ai fait au préalable : créer un répertoire spécifique, dans lequel je loge :
  • le fichier ventilation.xlsm
  • le fichier excel_download.xlsx de ce ticket
    • ce dernier comprend bien un onglet "Bdd" dans lequel il existe une table structurée
Quand je déroule la macro,
  • l'étape Set wbBdd = openWb(fParam.[nombdd]) appelle la fonction associée.
  • La Msgbox est déclenchée : "Le fichier non trouvé".
  • La fonction est terminée; la procédure se poursuit et plante à : Set wsBdd = wbBdd.Worksheets("Bdd")
Aurais-je omis quelque chose ?

Merci !
 
Bonjour Laurent,

J'ai repassé la macro pas à pas, tout à l'air de fonctionner sauf au moment de créer les fichiers ("A.xlsx", "B.xlsx", ect...).
La procédure ne plante pas mais la ligne 38 (wbBdd.SaveAs Filename:=rngE.Value, FileFormat:=xlWorkbookDefault) ne créé pas de fichier.
Merci à toi !
 
Bonjour,
Existe-t-il une possibilité d'améliorer le code pour traitement plus rapide ?
J'ai en effet un fichier de 20 000 lignes et le code vérifie ligne par ligne si la suppression doit avoir lieu.
J'ai fait tourner ma macro toute une nuit. (+- 7 heures d'exécution).
Merci,
 
- 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
Retour