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 :

VBA TCD Pivotfield Variable


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut VBA TCD Pivotfield Variable
    Bonjour à tous,

    J'ai déjà un tableau, que je dois mettre sous forme de TCD pour agréger des données (la catégorie) . J'intègre le TCD au sein d'une macro afin qu'il puisse varier d'années en années. il est structuré comme suit :
    - Etiquette de ligne: Le code catégorie
    - Etiquette de colonne: Rien.
    - Somme de valeur: Les années.

    Problème:
    Mes années sont variables, et je voudrai pouvoir créer un TCD dynamique. j'ai 14 "sommes de valeurs, correspondant aux 14 années. la 1èere est 2014 , ensuite 2013 etc.. mais l'année prochaine, ma première sera 2015 , la seconde 2014 etc... comment faire ?!

    Je joins le fichier!
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    regardes la pièce jointe
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    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 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    Pour info en partant d'une source structurée comme une BD (une seule colonne année avec les valeurs 2001, 2010, 2014...) et non déjà à double entrée, pas besoin de VBA, cela marche tout seul et en plus on peut, si besoin, faire des comparaison dans le TCD d'une année à l'autre, ce qui n'est pas aisément faisable avec cette structure...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Invité
    Invité(e)
    Par défaut Bonsoi 78chris,
    je ne suis pas tout à fait d'accord, si son tableau provient d'un traitement automatisé, il devra refaire un traitement pour transposer les données au bon format, alors que le tdc est prévu pour faire ça avec un minimum de traitement. je ne sais pas qui et comment génère son tableau c'est pour cela que j'ai proposé ma solution!
    Dernière modification par AlainTech ; 17/08/2014 à 02h05. Motif: Suppression de la citation inutile

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    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 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    rdurupt : loin de moi de critiquer ta solution ! Tes interventions sont toujours impec !

    C'est juste une remarque pour le demandeur : certaines sources se prêtent mieux à l'exploitation par TCD que d'autres. Parfois rien ne justifie la présentation choisie à part l'habitude ou même le hasard. Si on peut la changer c'est tout aussi bien.

    Comme je le disais, si on garde une colonne par année, il faut autant de champs en valeurs que d'années et si on veut ajouter des évolutions on est obligé de passer par des champs calculés alors qu'avec la source comme suggérée tout cela se fait par quelques clics...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  6. #6
    Invité
    Invité(e)
    Par défaut
    non je te rassure je n'ai pas du tout pris ça pour moi, c'était juste un commentaire. si c'est lui qui défini le format du tableau Excel, alors tu as parfaitement raison si c'est un export base de données ou autre ou un format imposé, le tdc est moins coûteux en traitement.

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci à vous deux c'est top. Beau cadeau après un retour de we !

    En fait je dois passer par une macro car c'est une étape qui est déjà intégrée à ma macro, et je la fais pour des besoins professionnels. Je dois donc faire en sorte qu'en cliquant sur un bouton, tout le travail soit fait par cette macro.

    Une dernière petite question: je souhaite diviser tous les chiffres de ma base par 100. Quand je mets ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("R:V") = Range("R:V") / 100
    J'ai comme message d'erreur "incompatibilité de type". Ce qui est étonnant c'est que cela marche quand je le fais sur une seule cellule, mais pas sur des colonnes entières.

    Bonne journée

  8. #8
    Invité
    Invité(e)
    Par défaut Bonjour,
    tu ne peux pas diviser un tableau par un autre tableau dans ton exemple lui même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For l = 2 To Sheets("baseannulpr").UsedRange.Rows.Count
        For C = 0 To 4
            Sheets("baseannulpr").Range("R" & l).Offset(0, C) = Sheets("baseannulpr").Range("R" & l).Offset(0, C) / 100
        Next
    Next

Discussions similaires

  1. [XL-2003] Créer en vba un 2eme TCD à la suite du premier (Lignes du TCD étant variable)
    Par Chagui dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/05/2011, 18h09
  2. [VBA-E] pb variables globales reinitialisées...
    Par borisa dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/03/2006, 14h57
  3. [VBA-E]Problème Variable/Graphique
    Par 47-47 dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 21/02/2006, 10h34
  4. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52
  5. [VBA excel] une variable pour 2 classeurs
    Par totoche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/01/2006, 09h42

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