Macro scinder un tableau un plusieurs onglets (ou classeurs?)

Bonjour

J'aimerais pouvoir dupliquer mon tableau TCD en autant d'onglets qu'il y a de références dans la colonne "L Affectation 3

" (dans le cas présent un onglet base1, un onglet base2, base3 base4... sachant que je peux en avoir une quinzaine).

Etant novice j'ai essayé de récupérer un code d'un ancien sujet mais cela ne fonctionne pas. J'ai donc modifié la macro en dupliquant mon TCD dans un tableau copier coller pensant que mon TCD genait mais sans succès

cela bug au niveau du "with". je pense qu'il s'agit du nom du tableau que je n'arrive pas à définir ne sachant pas le nombre de lignes à l'avance

Peut etre que je devrais plutôt partir de 0 sur ce code en partant juste de mon TCD (sans dupliquer le tcd en copier coller valeur dans un autre onglet), mais je n'y connais pas grand chose en codage :/

L'objectif à termes dans cette macro est de dupliquer ce tableau (pouvant faire +1000 lignes) dans plusieurs onglets (ou classeurs) selon l'affectation pour ensuite les envoyer par email au bon manager.

Merci pour votre aide precieuse !

Sub fragmenter() 'fragmenter en plusieurs onglets les services pour preparer un envoie par email 'dupliquer l'onglet TCD Sheets("TCD").Select Sheets("TCD").Copy Before:=Sheets(2) Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("TCD (2)").Select Rows("1:2").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Rows("1:1").Select Selection.Font.Bold = True Selection.AutoFilter 'variables Dim i%, cle As Variant, sw As Worksheet, dico As Object, tbl As Variant 'init parametres Set sw = ActiveSheet Set dico = CreateObject("Scripting.Dictionary") With ActiveSheet.ListObjects(1) If .ShowAutoFilter Then .AutoFilter.ShowAllData tbl = .ListColumns(1).DataBodyRange For i = 4 To UBound(tbl) dico(tbl(i, 1)) = dico(tbl(i, 1)) + 1 Next For Each cle In dico.Keys .Range.AutoFilter Field:=1, Criteria1:=cle .Range.Select Selection.Copy Sheets.Add After:=ActiveSheet With ActiveSheet Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .ListObjects.Add(xlSrcRange, Cells(1).CurrentRegion, , xlYes).name = cle .ListObjects(1).TableStyle = "TableStyleMedium2" .name = cle End With sw.Select Next .AutoFilter.ShowAllData End With End Sub

10test.xlsx (19.92 Ko)

Bonjour

Tu peux commencer par appliquer les bonnes pratiques et mettre ta source sous forme de tableau structuré et construire le TCD sur la tableau structuré et non sur 1 million de lignes, ce qui évitera les vides et allégera le cache des TCD.

Ensuite place le champ L Affectation 3 en zone de filtre du TCD puis utilise, dans l'onglet Options de l'onglet Outils de TCD du ruban : Options, Afficher les pages de filtre du rapport, choisir ce champ : tous les onglets vont se créer automatiquement.

Cette manip peut être automatisée en utilisant l'enregistreur de macros...

Bonjour Skyjet53 et Chris,

Au-delà des recommandations de Chris, j'ai une question = pourquoi scinder en plusieurs onglets alors qu'avec un filtre, voire même un segment, on peut sélectionner ce que l'on souhaite voir affiché ?

Quant à scinder un TCD en plusieurs classeurs ... non, il vaut mieux scinder dans ce cas les données de base.

Bonjour

Tu peux commencer par appliquer les bonnes pratiques et mettre ta source sous forme de tableau structuré et construire le TCD sur la tableau structuré et non sur 1 million de lignes, ce qui évitera les vides et allégera le cache des TCD.

Ensuite place le champ L Affectation 3 en zone de filtre du TCD puis utilise, dans l'onglet Options de l'onglet Outils de TCD du ruban : Options, Afficher les pages de filtre du rapport, choisir ce champ : tous les onglets vont se créer automatiquement.

Cette manip peut être automatisée en utilisant l'enregistreur de macros...

Bonjour Chris,

Merci beaucoup pour ta réponse je connaissais pas cette option dans le TCD

En fait dans le fichier source j'ai deja un filtre mais je vais rajouter celui ci et essayer d'automatiser avec ta méthode

merci pour tes conseils

Bonjour Skyjet53 et Chris,

Au-delà des recommandations de Chris, j'ai une question = pourquoi scinder en plusieurs onglets alors qu'avec un filtre, voire même un segment, on peut sélectionner ce que l'on souhaite voir affiché ?

Quant à scinder un TCD en plusieurs classeurs ... non, il vaut mieux scinder dans ce cas les données de base.

Bonjour Steelson

En fait je veux envoyer à chaque responsable leur population selon certaines données (calcul et filtre en amont du tcd) et je ne souhaite pas qu'ils puissent voir les autres data qui ne les concernent pas d'où ma question en plusieurs classeurs

Re-

D'abord, si tu filtres le TCD et que tu n'envoies qu'une seule partie, étant que les données elles sont globales, un double clic sur la valeur globale fera réapparaître l'ensemble des données par n'importe quel destinataire !

Pour moi, ta solution est de découper ta base de données selon un critère.

Voici un outil qui peut t'aider.

Re-

D'abord, si tu filtres le TCD et que tu n'envoies qu'une seule partie, étant que les données elles sont globales, un double clic sur la valeur globale fera réapparaître l'ensemble des données par n'importe quel destinataire !

Pour moi, ta solution est de découper ta base de données selon un critère.

tout à fait c'est le probleme que je rencontre avec le TCD tu as raison

Voici un outil qui peut t'aider.

c'est top ce petit fichier!!! ça repond pas mal à ce que je cherchais

je vais regarder cela de plus prêt pour comprendre

un grand merci à toi pour ton aide

Autre solution (mais qu'il faudrait développer) :

  • dupliquer ton fichier
  • supprimer les données <> direction concernée
  • actualiser le TCD de chaque fichier
L'avantage : on conserve le TCD.

Autre solution (mais qu'il faudrait développer) :

  • dupliquer ton fichier
  • supprimer les données <> direction concernée
  • actualiser le TCD de chaque fichier
L'avantage : on conserve le TCD.

ça serait une autre solution en effet

je vais déjà bien décortiquer et comprendre ton developpement pour que je puisse l'adapter

c'est vraiment top merci encore

Rechercher des sujets similaires à "macro scinder tableau onglets classeurs"