XL 2021 Ventiler catégorie via powerquery

CDR77

XLDnaute Nouveau
Bonjour
Je travaille actuellement sur un classement de course que j'épure et transforme avec Powerquery.
Après avoir filtré et mis en forme ce dont j'avas besoin, j'arrive à une étape ou je souhaite :
Garder mon classement final (qui se nomme étape 3) tout en créant un onglet par catégorie d'âges H et F basé sur les noms de catégories.

Je vous joint mon fichier pour que ce soit plus simple à comprendre.

Merci d'avance !
 

Pièces jointes

  • lorrez cat B.xls
    64.5 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonsoir CDR77,

Une solution VBA :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim d As Object, w As Worksheet, i&, x$
Set d = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each w In Worksheets
    If Len(w.Name) = 3 Then w.Delete
Next w
With [A1].CurrentRegion
    For i = 2 To .Rows.Count
        x = .Cells(i, 4)
        If Not d.exists(x) Then
            d(x) = ""
            Sheets.Add After:=Sheets(Sheets.Count)
            ActiveSheet.Name = x
            .AutoFilter 4, x
            .Copy ActiveSheet.[A1]
            .AutoFilter
        End If
    Next i
    .Parent.Activate
End With
End Sub
A+
 

Pièces jointes

  • lorrez cat B.xlsm
    37.3 KB · Affichages: 8

CDR77

XLDnaute Nouveau
Comme il s'agit de créer des onglets, il ne paraît pas cohérent d'appliquer le code à plusieurs feuilles.

Mais c'est toujours possible bien sûr.
Merci pour ton retour
Dans mon idée c'est de pouvoir appliquer cette macro à chaque manche de courses que je reçois.
Ce qui donnera dans mon dossier
DOSSIER CHALLENGE
Course 1.xlsm (avec mon classement général et la macro par catégorie qui affiche les onglets)
Course 2.xslm ( ou j'appliquerai la même macro pour afficher les onglets en plus de mon classement général)
Course 3 etc etc ...

A l'issue je chargerai ainsi mes fichiers excel avec powerquery afin d'en faire un tableau récapitulatif qui résumera le nombre de points de chaque coureur. (mais je n'en suis pas encore là , je m'égare :) )
 

CDR77

XLDnaute Nouveau
Bonjour CDR77,

S'agissant d'un tableau structuré il faut remplacer :
VB:
.Copy ActiveSheet.[A1]
par :
VB:
.SpecialCells(xlCellTypeVisible).Copy ActiveSheet.[A1]
A+
Aaaaaaah bah voilà j'ai appris un truc , je cherchais pourquoi ca fonctionnait pas, bah je me coucherais moins bête. Du coup je pourrais ajouter cette macro à chaque fichier traité c'est cool , ca va me faire gagner du temps. Un grand merci à toi je suis vraiment une quiche avec VBA :)
 

Statistiques des forums

Discussions
315 080
Messages
2 116 021
Membres
112 637
dernier inscrit
pseudoinconnu