RESOLU [VBA] Génération automatique de fichiers à partir d'un seul

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

ralph45

XLDnaute Impliqué
Bonjour à toutes et à tous.

Un petit peu d'aide ne me ferait pas de mal pour me soulager de cette tâche...

1° Dans mon répertoire "C:/Mes Documents/", j'ai un répertoire "Bizness" et un sous-répertoire "Ouceque ?".

2° Je reçois régulièrement un fichier "Yadelamaille.xls" que je place sous "Bizness" et que je voudrai exploser en plusieurs fichiers excel sous "Ouceque ?", selon un critère (Colonne A, à savoir le code postal) et en procédant à écrémage au niveau des informations : ainsi le fichier généré automatiquement "2011-08-26 - 75001.xls" ne doit contenir que les informations relatives au CP 75001, etc.

Je vous joins en exemple une version expurgée avec en onglet 1 le gabarit du fichier source et sur les autres onglets, les résultats attendus pour les fichiers afférents.

Encore merci de votre aide....
 
Dernière édition:
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour,

Voici un fichier exemple à adapter à ton cas
Une macro génère les feuilles en filtrant puis copier coller
une macro enregistre les feuilles dans des classeurs séparés dans le répertoire choisi

Attention : il faut fermer et r'ouvrir le classeur avant chaque utilisation : je ne sais pas gérer les N° de feuille lors de la création d'une feuille il faut donc que ça commence toujours à la feuille1.

Cordialement
 

Pièces jointes

Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour,

Hello Dugenou🙂

Dans le classeur joint la macro Extract crée un classeur pour chaque code postal

Penser à adapter le chemin vers le dossier

A+
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour le fil,

Je reviens vers vous pour compléter le fichier créé par Hasco.
Je voudrais que la macro initiale via un userform me demande la date à saisir : les fichiers ainsi générés seraient nommés avec cette date (Exemple : 2011-08-29 - 75001.xls).

Merci de votre aide !
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour,

Pour la date tu peux changer le haut de la macro par ces lignes.
Elles demandent une date par inputBox, avec la date du jour par défaut, si l'utilisateur ne rentre rien, on sort de la procédure.

VB:
Sub Extract()
    Dim shExt As Worksheet
    Dim shSource As Worksheet
    Dim Wk As Workbook
    Dim cp As Long
    Dim c As Range
 
    'Obtenir la date pour les fichiers
    Dim dte As Variant
    Do
        Var = InputBox("Entrez la dates des noms de fichiers" & vbCrLf & "ou rien pour annuler", , Date)
    Loop While Not IsDate(Var) And Var <> ""
    If Not IsDate(dte) Then Exit Sub

Et plus bas dans la macro changer pour:

VB:
                        'Enregistrement du classeur (.xlsx) puis fermeture
                        Wk.SaveAs Filename:=ThisWorkbook.Path & "\Ouceque\" & Format(dte, "yyyy-mm-dd") & " - " & Format(cp, "00000") & ".xlsx"

Quand au problème exposé en MP😡 Reste dans le fil.

A+
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

OK, OK, Hasco.

Mea culpa et merci pour ta réponse rapide.
Alors pour rester dans le fil, j'ai modifié le fichier original, j'avais besoin de plus de colonnes et ai essayé d'adapter le code mais cela plante lamentablement. Si quelque âme charitable pouvait allumer mes lumières...

Merci !
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Alors dans le fichier original, je ne faisais qu'un test sur 3 colonnes et ta macro fonctionnait sans aucun souci.
Or le fichier de travail fonctionne sur 8 colonnes et pensant adapter le code, je l'ai modifié et cela plante (et je n'arrive vraiment pas à voir ou est le bug).

Voici donc le fichier remanié...
 
Dernière édition:
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Re,

As-tu fais un débogage pas à pas. Mets ton curseur dans la macro et lance la avec F8 (tapes successives pour avancer ligne par ligne). vois où sa 'plante' et quel message d'erreur elle donne.

A+
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour le fil,

Alors pour répondre à la question du pas à pas détaillé, j'ai essayé, mais :

1° il y a un nouveau bug qui arrive avant le filtre élaboré et c'est le code spécifique au choix dans la date (pas de contrepèterie, s'il vous plaît 😉) comme quoi "Var" = Erreur de compilation. Variable non-définie.

2° le bug rencontré suite à l'adaptation du code d'Hasco se situait de mémoire ici

'Extraction des données pour un code postal
shSource.Range("A1:H" & shSource.Range("A" & shSource.Rows.Count).End(xlUp).Row).AdvancedFilter _
Action:=xlFilterCopy, _
Criteriarange:=.Range("A1:A2"), _
CopyToRange:=.Range("A4:H4")

Encore merci de votre aide !
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour Ralph,

Pour la question de la date, j'ai fait un copié/coller sans corrigé, excuses moi.

VB:
Sub Extract()
     Dim shExt As Worksheet
     Dim shSource As Worksheet
     Dim Wk As Workbook
     Dim cp As Long
     Dim c As Range
  
     'Obtenir la date pour les fichiers
    Dim dte As Variant
     Do
         dte = InputBox("Entrez la dates des noms de fichiers" & vbCrLf & "ou rien pour annuler", , Date)
     Loop While Not IsDate(dte) And dte <> ""
     If Not IsDate(dte) Then Exit Sub

Pour le reste, la ligne que tu donnes fonctionne chez moi. Alors une fois de plus dit quel message est revonyé par l'érreur que tu rencontres.

A+
 
Re : Génération automatique de fichier(s) à partir d'un seul (source)

Bonjour Hasco,

Alors oublions le point N°2, c'est le satané blaireau que je suis qui a fait une erreur impardonnable : dans l'onglet "EXTRACTION", ma plage retravaillée de filtre élaboré était contigüe aux codes postaux, ce qui fait que la structure de base du filtre était différente de la structure de résultat.

J'ai rectifié le tir, et cela fonctionne à nouveau. Ton code est bon et reste le meilleur.🙂

Pour le point 1, Je pense que c'est cela qui bloquait le tout, je fais des tests et tiens au courant le fil.

Encore merci !
 
Dernière édition:
[RESOLU] Génération automatique de fichier(s) à partir d'un seul (source)

Bon alors un petit "Up !" pour ce fil.

Le nouveau code pour le choix dans la date est le bon.
Merci Hasco pour la rapidité et la qualité de tes différentes réponses (pratiquement une ligne d'explication pour chaque action générée, chapeau !)... et pour également ta mansuétude.

A plus !
 
- 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