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

Excel Discussion :

Macro créant un TCD


Sujet :

Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 152
    Points : 97
    Points
    97
    Par défaut Macro créant un TCD
    Bonjour à tous,

    Je cherche une solution pour créer un TCD à partir d'une base de données

    Explication :
    J' ai une base de données (A1:R10000) que je souhaite transformer en tableau et ce tableau je souhaite sur une nouvelle feuille en faire un TCD et placer dans le TCD les données de filtres, colonne, ligne et dans les valeurs un nombre

    C'est une action à réaliser plusieurs fois dans un même classeur donc il faudrait que le nom du tableau change (peut-être avec la date du jour)

    Merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : février 2010
    Messages : 7 151
    Points : 13 510
    Points
    13 510
    Par défaut
    Bonjour

    On ne crée jamais on quasiment de TCD par VBA

    On crée le ou les TCD et on en modifie la source par code ou par requête PowerQuery...

    Il faudrait plus d'infos sur le contexte et l'objectif pour t'aider plus précisément
    Chris

    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é...

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 152
    Points : 97
    Points
    97
    Par défaut
    L'objectif était juste le gain de temps car nous réalisons une fois par semaine un TCD sur une nouvelle base de données et vu que le tableau est identique chaque semaine seulement les données change je me demandais s'il y avait possibilité de réaliser un TCD en rentrant les colonne dans les sources filtres,lignes,données et valeur par un simple clic

    Merci de ta réponse

  4. #4
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : février 2010
    Messages : 7 151
    Points : 13 510
    Points
    13 510
    Par défaut
    RE

    La solution dans ce cas est de construire les TCD sur le fichier externe qui est écrasé au fil du temps
    ou bien de changer le lien d'une requête PowerQuery utilisant un fichier externe : facile à automatiser si le nom est déductible de la date ou autre

    Dans les 2 cas rien à faire : une actualisation paramétrée à l'ouverture du fichier et le fichier d'analyse par TCD est toujours à jour
    Chris

    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é...

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 152
    Points : 97
    Points
    97
    Par défaut
    Le truc c'est que je voudrais qu'on est pas à créer le TCD

    Le client nous envoie une base donnée et à chaque fois on en fait un TCD en plus de d'autres action j'ai automatisé les autres actions mais pour la création du TCD j'ai du mal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     ActiveSheet.Name = "BDD " & Range("W1").Value
     
      y = ActiveSheet.Range("A1: R10000").Value
     
     
     
     
       Sheets.Add.Select
       Range("W1").Value = Format(Now, "mm.dd.yyyy")
        ActiveSheet.Name = "TCD " & Range("W1").Value
     
     
       ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=y, Version:=6).CreatePivotTable TableDestination:=ActiveSheet.Range("A6"), TableName:="T " & Range("W1").Value, DefaultVersion:=6
    c'est la dernière ligne qui me pose problème

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    16 589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 16 589
    Points : 47 785
    Points
    47 785
    Billets dans le blog
    88
    Par défaut
    Salut.

    Je ne peux qu'être d'accord avec Chris . On ne crée normalement jamais le TCD par VBA. La création du TCD fait partie de la conception du classeur et on alimente ce TCD par un tableau qui est a priori fixe au niveau des colonnes.

    L'idée est donc de créer le TCD grâce à l'interface d'Excel en l'appuyant sur des données qui sont mises à jour. Je ne me souviens plus de ta version d'Excel mais je suppose que tu as au moins la 2010 et donc la possibilité d'utiliser Power Query.

    Je développe ici une idée parmi d'autres:
    • Déposer le fichier du client toujours au même endroit en s'assurant qu'il soit le seul, par exemple dans le dossier sourceC:\data\Temp\SorbetFramboise-PowerQuery\Sources;
    • Placer le fichier de travail dans un autre dossier (par exemple son parent), par exemple dans le dossier de travail C:\data\Temp\SorbetFramboise-PowerQuery;
    • Par Power Query, récupérer le fichier Source en demandant à Power Query de récupérer et combiner tous les fichiers du dossier source;
    • Appuyer le TCD sur la récupération des données effectuée par Power Query.


    Imaginons le fichier client avec les données placées dans l'unique feuille du classeur sans tableau structuré:

    Nom : 2020-12-01_155656.png
Affichages : 38
Taille : 7,7 Ko

    Dans le fichier de travail, on récupère tous les fichiers du dossier source:

    Nom : 2020-12-01_155755.png
Affichages : 37
Taille : 40,1 Ko

    Nom : 2020-12-01_155856.png
Affichages : 37
Taille : 55,5 Ko

    Nom : 2020-12-01_155959.png
Affichages : 36
Taille : 66,5 Ko

    Nom : 2020-12-01_160511.png
Affichages : 37
Taille : 85,6 Ko

    Nom : 2020-12-01_160041.png
Affichages : 35
Taille : 8,7 Ko

    Nom : 2020-12-01_160106.png
Affichages : 36
Taille : 14,6 Ko

    Par la suite, il suffira de remplacer le vieux fichier source par le nouveau puis d'actualiser le TCD...

    On peut rendre le chemin du fichier relatif comme je l'explique dans ce billet, mais à réaliser dans un second temps, à mon avis.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    16 589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 16 589
    Points : 47 785
    Points
    47 785
    Billets dans le blog
    88
    Par défaut
    Citation Envoyé par sorbetframboise Voir le message
    [...]
    c'est la dernière ligne qui me pose problème
    Souvent, je vois travailler à l'envers: On essaie d'amener de la conception par VBA sur le classeur que l'on reçoit.

    Pour moi, il faut travailler dans l'autre sens: On met en place une solution (Excel, TCD, Power query, graphiques, formules) sur bases de tableaux formés comme on le souhaite, et on amène les données externes dans cette solution en les façonnant à notre conception (par manipulations, Power Query ou VBA). C'est pour moi la seule bonne façon de travailler, et c'est celle qui va s'appuyer le mieux sur les outils d'Excel, qui va limiter le code VBA et pérenniser la solution.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 152
    Points : 97
    Points
    97
    Par défaut
    Avant de me lancer dans du Power Query (j'ai la version Microsoft 365) est-il possible de faire sous power querry :

    -Que plusieurs TCD soient visible en même temps ?
    -Que les Bases de données ne se mélangent pas dans un seul TCD ?
    -De pouvoir garder toutes les bases de données sur un seul fichier sources avec plusieurs onglets ?

    Merci pour vos réponses

  9. #9
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : février 2010
    Messages : 7 151
    Points : 13 510
    Points
    13 510
    Par défaut
    Citation Envoyé par sorbetframboise Voir le message
    -Que plusieurs TCD soient visible en même temps ? les TCD sont dans Excel quelle que soit leur source. On a donc les mêmes possibilités.

    -Que les Bases de données ne se mélangent pas dans un seul TCD ? Ta question est très floue. Si la source est une BD, rien ne peut se mélanger. Si on veut par choix faire une synthèse parce c'est intéressant pour un TCD (comparer une BD du présionnel et un BD du réel par exemple) on le peut. Comme pour VBA c'est toi le pilote...

    -De pouvoir garder toutes les bases de données sur un seul fichier sources avec plusieurs onglets ? Oui c'est possible mais attention au poids du fichier si c'est une BD par jour...

    PowerQuery traite les données qu'on lui demande de traiter et de la façon dont on le paramètre. Il ne modifie pas le comportement de base d'Excel et c'est donc à toi d'appliquer les bonnes pratiques.
    Chris

    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é...

  10. #10
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 152
    Points : 97
    Points
    97
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. [XL-2007] Problème de macro dans un tcd
    Par PASQUI62 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/10/2013, 20h29
  2. Macro créant macro+historique
    Par thojus dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/11/2012, 21h57
  3. Macro MAJ 2 TCD avec plusieurs critères
    Par wannn dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 23/10/2012, 23h13
  4. Réponses: 1
    Dernier message: 15/06/2011, 10h57
  5. Macro créant une autre macro par l'assistant
    Par David2304 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/06/2008, 16h18

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