Enregistrer des tableaux filtrés

Bonjour le forum,

Je reviens vers vous pour demander un petit coup de pouce pour m'éviter une manipulation répétitive :

Contexte : J'ai une base de données (voir PJ pour exemple) avec un filtre sur la colonne A, qui est le nom des villes (300 villes à terme)

J'aimerai, pour chaque ville, générer le tableau filtré et l'enregistrer dans un nouveau dossier du nom de la ville. J'ai déjà une macro qui fonctionne mais qui m'oblige à filtrer manuellement l'une après l'autre les villes.

Je souhaite simplement un code qui fasse ce boulot là à ma place.

A titre informatif j'ai ajouté 3 onglets pour montrer l'allure des tableaux extraits.

J'ai déjà une partie de la macro pour vous montrer.

la sub adresse_chemin permet à l'utilisateur de définir le chemin d'accès au dossier, pour ne pas à avoir à le modifier dans les codes.

la sub indiquer_la_valeur_du_filtre me permet de vous montrer en quelque sorte la procédure que doit prendre la macro traitement

la sub traitement est celle qui me pose problème, elle doit pouvoir filtrer, créer les nouveaux fichiers et les enregistrer. Je suis passé par l'enregistreur de macro, mais ça n'est pas opti..

Merci à ceux qui se pencheront sur mon fichier ci-joint.

23classeur-1.xlsm (26.03 Ko)

Bonjour,

Un début de réponse.

Mais il faudra être prudent avec le nom des villes !...

(ne pas oublier de modifier le chemin pour l'enregistrement...)

Cdlt.

38classeur-1.xlsm (39.40 Ko)

Bonjour et merci de ta proposition Jean-Eric, j'adapte ça à mon fichier pro et je ferai un retour demain dans la matinée

Bonne soirée !

edit1 : simplement, je ne sais plus si j'avais précisé, il faudra certainement regarder à ajouter une ligne pour que chaque fichier soit dans un sous-dossier dans ville, portant le nom de la ville, c'est-à-dire : Ville -> 3 dossiers (paris-lille-marseille) avec le bon fichier dedans à chaque fois. a suivre

edit2 : où intercaller un activesheet.name =cell.value.delete ? Pour ne garder que la feuille "Données" en fin de traitement de la macro.

edit3: j'ajoute à titre informatif mon en-tête de tableau pro, je coince pour la mise en forme sous tableau, puisque j'ai 2 lignes fusionnées dans mon en-tête. Ce qui fait coincer la ligne set lo = wsData.ListObjects(1). J'aimerai ne pas passer par la mise en forme sous tableau car cela modifie la mise en forme (couleur notamment) de mon tableau actuel :/

edit4: je n'ai pas que des villes, j'ai des communautés d'Agglomération et cela entraîne des noms à rallonge. Je crois que ça pose un problème puisque la macro s'arrête au moment du with activesheet.name = cell.value.copy. Est ce qu'on peut contourner cela?

14entete.xlsm (10.74 Ko)

Est-ce que Jean-Eric est dans les parages par hasard pour qu'on puisse continuer de travailler ?

J'ai ajouté quelques edit car le code proposé est très correct mais j'ai besoin de quelques modifications :/

Merci =)

J'ai finalement bidouillé pour avancer, mais il reste un seul point sur lequel je bloque :/

Le tableau de l'onglet données a été converti / mise en forme sous forme de tableau, et lorsque je copie colle ce tableau dans un nouvel onglet, j'ai cette mise en forme et je perd la mienne, celle d'origine. J'ai des en-têtes toutes bleus alors que j'avais un code couleur personnalisé :/

est-ce que ça vient de ce bout de code ?

    With lo
        If .ShowAutoFilter Then .AutoFilter.ShowAllData
        lo.ListColumns(1).DataBodyRange.Copy Destination:=wsTmp.Cells(1)
    End With

    wsTmp.Cells(1).CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlNo
    For Each Cell In wsTmp.Cells(1).CurrentRegion
        lo.Range.AutoFilter field:=1, Criteria1:=Cell.Value
        Set rngData = lo.AutoFilter.Range
        rngData.SpecialCells(xlCellTypeVisible).Copy
        wb.Worksheets.Add After:=Worksheets(Worksheets.Count)
        With ActiveSheet
            .Cells(1).PasteSpecial xlPasteValuesAndNumberFormats
            .ListObjects.Add xlSrcRange, .Cells(1).CurrentRegion, , xlYes
            .ListObjects(1).Name = "tbl_" & Cell.Value
        End With

La solution se trouve la-dedans mais je ne parviens pas à déclarer que j'ai deja une mise en forme et que je souhaite la conserver. Merci à ceux qui passent par là et qui ont un indice, une idée.

Rechercher des sujets similaires à "enregistrer tableaux filtres"