IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro, TCD - Groupage par 10 [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Macro, TCD - Groupage par 10
    Bonjour !

    J'aimerais grouper mes lignes par 10 dans mon TCD, de manière automatique comme il y a beauucoup de données.

    Voilà à quoi ressemble mon tableau de base :
    Nom : TCDdeBase.PNG
Affichages : 469
Taille : 15,5 Ko

    Voilà ce à quoi je veux qu'il ressemble à la fin :
    Nom : TCDdeFin.PNG
Affichages : 455
Taille : 96,7 Ko
    (Sans la première colonne sur le nom de l'équipement : cette colonne n'est plus là, c'est maintenant un filtre)

    ====================================================
    Je suis débutante VBA, donc voilà mon petit code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub test()
     
    Set TCD = ActiveSheet.PivotTables("TcdP")
     
     
    'TCD.PivotFields("Paquet 10").Orientation = xlHidden 'On supprime la colonne Paquet 10
    li = 41 'première ligne de donnée du TCD
     
    'Premier groupe :
    'Car lors de la création de ce groupe, une nouvelle colonne va apparaître
    a = Range("B" & li).Row
    b = Range("B" & li + 9).Row
    Range("B" & a, "B" & b).Select
    Selection.Group
    li = li + 10
     
    'Les autres groupes :
    Do While Cells(li, 2).Value <> ""
        a = Range("C" & li).Row
        b = Range("C" & li + 9).Row
        Range("C" & a, "C" & b).Select
        Selection.Group
        li = li + 10
    Loop
     
    With TCD.PivotFields("Paquet 10") 'comme on a supprimé la colonne 'Paquet de 10' il va se rajouter automatiquement dès sa première céation ... à la colonne 3
            .Orientation = xlRowField
            .Position = 1 'on déplace le champs 'Paquet de 10' à la 2ème colonne du Tdc
    End With
     
    '    TCD.PivotFields("Paquet 10").AutoSort xlAscending, _
    '        "Paquet 10"
     
    'On réduit les groupes : (NE MARCHE PAS)
        'Range("A41").Select
        'Range(Selection, Selection.End(xlDown)).Select
        'Selection.ShowDetail = False
     
    End Sub
    Sauf que j'ai un problème :

    Je me retrouve avec des groupes de 10, ok.
    Mais :
    • Ma macro n'est pas fiable.
    • Certains groupe 'bug' et ne font pas des groupes selon l'ordre d'apparition des numéros :
    Nom : PBgroupe.png
Affichages : 393
Taille : 9,1 Ko

    De plus, quand cela se passe, je n'arrive pas à réinitialiser les groupages. J'ai l'impression que le fichier garde les données des groupes et, même si je tri mes numéro différemment, il me fera les même groupes qui avaient été fait précédemment
    Je ne sais pas si j'ai été claire, mais n'hésitez pas à me poser des question ..!

    Mercii!
    Images attachées Images attachées  

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 518
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 518
    Points : 16 448
    Points
    16 448
    Par défaut
    Bonjour

    Le regroupement de valeurs est conservé dans le cache du TCD.

    Il faut d'abord dégrouper si on veut regrouper autrement.

    Le regroupement textuel est à proscrire si les regroupement doivent évoluer.

    Préférer une table de correspondance numéro de série/groupe (ici a priori tu peux utiliser une formules pour faire des groupe 10 numéros par 10 numéros tes séries pouvant être assimilés à des nombres même si leur type est texte)

    Plutôt que de bidouiller le TCD par VBA il est aussi plus simple et propre de prétraiter la données sources par requête PowerQuery (la requête s'intercale entre données et TCD)

    C'est une grosse erreur de ne pas préciser ta version EXCEL car en TCD les différences sont importantes entre versions.

    PowerQuery est intégré à partir de 2016 et en add on sur 2010 et 2013...

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Merci beaucoup de ta réponse!

    Le regroupement textuel est à proscrire si les regroupement doivent évoluer.
    Les regroupements vont effectivement changer, comme mon but est de :
    - Choisir un équipement (parmis 30)
    - Défaire le groupage existant
    - Faire un groupage par 10 (avec des valeurs allant de 20 pour un équipement, à 1000 pour un autre équipement)

    Préférer une table de correspondance numéro de série/groupe
    Je n'ai jamais utilisé de table de correspondance, j'ai fais quelques recherche mais je ne vois pas vraiment en quoi cela pourrait faire un groupage.

    Plutôt que de bidouiller le TCD par VBA il est aussi plus simple et propre de prétraiter la données sources par requête PowerQuery
    Pareil, aucune connaissances de PowerQuery.
    Désolé, je ne savais pas que ma version était si importante.
    J'utilise la version 2013 d'Excel, donc malheuresement PowerQuery est à ajouter ?
    Si c'est à ajouter → Impossible car PC bloqué entreprise (plutôt compliqué de télécharger qqchose pour tous les pc)

    Si je dois traiter les données à la source, ça me parait compliqué car j'ai plus de 11 000 lignes de données avec 20 colonnes.
    Comme mon groupage dépend de l'équipement, le statut, la date, le nombre de SN, les données ne seront-elles pas trop lourde à traiter / compliquer à coder ? (débutante macro)
    Il me paraissait plus facile de partir du TCD comme les données sont déjà triées.. ("juste" à réaliser un groupage :'c )

    Encore merci!

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 518
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 518
    Points : 16 448
    Points
    16 448
    Par défaut
    RE

    Une table de correspondance c'est une table qui associe une référence à un groupe une fois pour toutes.

    Grouper, dégrouper, regrouper par VBA me parait une mauvaise approche et je crains que le cache soit complètement pollué au bout d'un moment.

    En plus des groupes nommés groupe1, groupe2 etc, c'est plutôt illisible comme TCD... Sans voir plus précisément ton contexte : données sources et objectif de l'analyse, difficile de donner d'autres pistes.

    11000 lignes pour PowerQuery c'est rien du tout mais si tu ne peux l'installer...

    C'est un add on Microsoft : tu peux peut-être expliquer à ton service informatique d'autant que 2013 pour une entreprise c'est vieux... surtout que Excel progresse réellement de version en version depuis la 2010

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponses!

    Le TCD sera en effet un peu illisible. En revanche, pour analyser mes valeurs je ne m'en sers pas : j'utilise seulement le graphique donné par le TCD : Il me permet de visualiser mon lissage des valeurs (par groupe de 10) pour ensuite analyser mes lots visuellement.

    Je vais en effet essayer de trouver le moyen de faire ajouter PowerQuery mais j'ai peur que la demande prenne du temps.

    Et merci pour les infos!

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Hello,

    Bon, en bidouillant un peu avec les macro, j'ai réussi à "forcer" le groupage comme je voulais!

    Quelques erreurs que je n'arrive pas à régler malgré tout :
    1) Le fichier garde en mémoire le nom des groupes. On peut pas réutiliser les mêmes noms précédemment utilisés. Ce qui me pose problème car je réutilise justement certain noms (en fonction du tri)
    → Y aurait-il un moyen de supprimer ces données caches du TCD ? (en macro)
    → Sinon, est-il possible de créer un numéro unique à chaque utilisation de la macro ? (ce qui me parait vraiment lourd a créer, et plutôt "moche" :p )
    → Autre solution ?

    2) Ma colonne de groupage se tri en fonction du texte, et pas du chiffre :
    Tri actuel : G1, G10 ,G11 ,G12, ,G13, G2, G3, G4, G5, G6, G7, G8, G9,
    Tri souhaité : G1, G2, G3, G4, G5, G6, G7, G8, G9, G10, G11, G12, G13
    → Comment les trier dans l'ordre du chiffre ?
    Sachant que j'ai déjà essayé de convertir mes données "Standard" en "Nombre" (en ayant mis que des chiffres) mais il n'en prends pas compte.

    J'espère avoir été claire,
    Merci beaucoup!

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 518
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 518
    Points : 16 448
    Points
    16 448
    Par défaut
    RE

    Il faut dégrouper avant si on veut que le cache oublie les anciens groupes sinon ça va être ingérable.

    On peut alléger le cache de façon permanente avecOptions de TCD, Onglet Données, Nombre d'éléments à retenir par champ : aucun

    Comme tout tri, il faudrait G01 voire G001 selon la taille des nombres...

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Heello,

    Merciii beaucouuup, tu me sauve la vie!
    Pour l'instant tout marche bien! (malgré tous mes bidouillages).
    Je comprends déjà beaucoup mieux comment marche le système de groupage, merci merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/03/2018, 14h20
  2. [XL-2007] TCD Filtre par année
    Par pounette dans le forum Excel
    Réponses: 1
    Dernier message: 19/03/2014, 13h13
  3. [XL-2010] TCD pourcentage par rapport à une autre colonne
    Par iperkut dans le forum Excel
    Réponses: 2
    Dernier message: 21/02/2011, 14h49
  4. [XL-2003] TCD : Cumul par mois indépendement de l'année
    Par jkrtu dans le forum Excel
    Réponses: 4
    Dernier message: 28/01/2011, 12h39
  5. [XL-2007] TCD : comparaison par rapport a l'année passée
    Par EmmanuelleC dans le forum Excel
    Réponses: 7
    Dernier message: 26/03/2010, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo