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 :

Changer la source de donnée d'un tableau dynamique croisé en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 58
    Par défaut Changer la source de donnée d'un tableau dynamique croisé en VBA
    Bonjour,

    J'ai un fichier excel avec une feuille nommée donnée1 et un tableau dynamique croisé(feuille tableau). J'ai fait un macro qui duplique donnée1 dans donnée2.
    Je veux maintenant que que mon tableau dynamique croisé pointe sur donnée2 au lieu de donnée1.

    Des idées s'il vous plait, je suis preneuse.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    cette action est détectée par l'enregistreur de macro

    je t'invite à faire ton petit enregistrement, et si tu as des difficultés pour adapter, montre nous le code

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 58
    Par défaut
    Voici mon 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
     
    Public Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim v
    Dim valeur
    Dim recup
    Dim donnee As Sheet1
    Dim Pvt As PivotTable
    v = ActiveCell.Value
    Worksheets("Sheet1").Cells.ClearContents
    Sheets("données").Columns.Copy
    Sheets("Sheet1").Columns.PasteSpecial Paste:=xlPasteValues
    For Each C In Worksheets("Sheet1").Range("G2:Q161")
    If Not IsEmpty(C.Value) Then
    recup = C.Value
    C.Value = v * recup
    End If
    Next C
    Set Pvt = Worksheets("Feuil2").PivotTables("Tableau croisé dynamique1")
    Pvt.RefreshTable
    End Sub
    données est ma feuille de source, j'ai copié données dans Sheet1 et j'ai modifié la valeur des cellules, je veux faire un rafraichissement de mon tableau dynamique mais il faut qu'il pointe d'abord sur Sheet1

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    je ne vois nul part la modification du cache (la source des données)
    qu'as donné l'enregistreur de macro exactement?

    je me demande aussi pourquoi tu as utilisé l'évènement selection_change pour réaliser ça
    à chaque fois que tu vas changer de cellule, ton TCD va modifier sa source de données ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 58
    Par défaut
    J'ai utilisé selectionChange parce qu'à chaque fois que je clique sur une cellule de ma feuille rates j’exécute le macro. C'était ça ma question comment faire le changement de cache?

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    je veux bien répondre à ta question, mais tu ne réponds pas à la mienne ?

    tant pis , voici pour toi, je te laisse adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub toto()
    Dim Pvt As PivotTable
    Dim MaPlage As Range
     
    Set MaPlage = Range("A1", "A1000") ' adapte
    Set Pvt = ActiveSheet.PivotTables(1)
    Pvt.ChangePivotCache _
    ActiveWorkbook.PivotCaches.Create(xlDatabase, _
                                      MaPlage, _
                                      Version:=4) ' 3 = 2007, 4 = 2010
    End Sub

  7. #7
    Expert éminent

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

    Citation Envoyé par lytog Voir le message
    J'ai utilisé selectionChange parce qu'à chaque fois que je clique sur une cellule de ma feuille rates j’exécute le macro. C'était ça ma question comment faire le changement de cache?
    Je sens déjà l'odeur du gaz s'échappant de l'usine... A chaque clic on copie 16000 colonnes puis on régénère un cache de TCD...

    Il y a probablement un processus plus optimisé... mais pour te donner des pistes il faudrait que tu données plus d'infos sur le besoin opérationnel.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/05/2015, 18h34
  2. [XL-2007] Changer la source de données d'un graphique croisé dynamique
    Par Tibou(c) dans le forum Excel
    Réponses: 3
    Dernier message: 15/07/2014, 09h58
  3. retrouver la source des données d'un Tableau Croisé Dynamique
    Par rpatruno dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2008, 09h57
  4. Réponses: 1
    Dernier message: 06/12/2007, 17h23
  5. Changer la source de données d'une Connexion
    Par Harry dans le forum WinDev
    Réponses: 1
    Dernier message: 09/08/2007, 15h54

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