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][EXCEL] Mise à jour de TCD en macro


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut [Résolu] [VBA][EXCEL] Mise à jour de TCD en macro
    Salut,

    Avec la macro suivante, je souhaite ouvrir un classeur qui contien des tableaux croisés dynamiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open FileName:="\\SERVEUR\test\docu.xls", UpdateLinks:=3
    Mais les tableaux ne sont pas mis à jours lors de l'ouverture.
    Dans les propriétés des tableaux, la case "Actualiser lors de l'ouverture" est bien cochée.

    Si quelqu'un peut m'éclairer ?

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ton classeur comporte-t-il des liaisons ? Si oui, les acceptes-tu à l'ouverture ? Tes TCD se mettent-ils à jour avec F9 ?
    Juste pour faire avancer le Schmilblic...

    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Oui, le classeur comporte des liaisons.
    Quand j'appuis sur F9, le tableau ne se met pas à jours.
    Par contre, quand je fais un clic droit sur celui-ci et que je fais "actualiser les données", il se met bien à jours.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Donc, tu as la possibilité de demander la mise à jour de ton TCD à l'ouverture du classeur dans la macro "Sub Workbook_Open()"
    Une macro, ça t'irait ? (Précise ta version VBA ou Excel)

    A+

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci pour ton aide.
    J'utilise Excel 97SR-1
    Il faudrait que cela le met à jours que lorsque je l'ouvre avec ma macro et pas quand ont l'ouvre directement.
    Est-ce possible ?

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Donc, si je comprends bien, tu as une macro dans un classeur1, qui ouvre le classeur2 contenant le TCD, et tu voudrais mettre à jour le TCD à ce moment là, non quand tu ouvres directement le classeur2 ?

    Est-bien ça ?

    Je te passe déjà le code pour raffraichir les données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Workboks(NomFich).select
        Worksheets(NomFeuil).select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
    A+

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens pour "raffraichir" les données de tous les TCD du classeur actif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub MajTCD()
     Dim Ws As Worksheet
     Dim Pt As PivotTable
     For Each Ws In ActiveWorkbook.Worksheets
       For Each Pt In Ws
         Pt.RefreshTable
       Next
     Next
    End Sub

  8. #8
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    C'est bien ça

    La ligne suivante de ton code me renvois l'erreur "Propriété ou méthode non gérée par cet objet"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("MonClasseur.xls").Select


    Quand je met la ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open FileName:="\\SERVEUR\test\MonClasseur.xls"
    qui suffirait à faire mon bonheur, il me met bien la boite de dialogue pour me demander si je veux mettre à jour avec les liaison...et après un clic sur OK, il ne met rien à jours ?

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Scuriolus
    C'est bien ça

    La ligne suivante de ton code me renvois l'erreur "Propriété ou méthode non gérée par cet objet"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("MonClasseur.xls").Select
    remplace .Select par .Activate ...

  10. #10
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci aussi pour ton aide bbil

    Quand j'utilise ton code, jai le même type d'erreur pour la ligne suivante:

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    oui désolé moi aussi j'ai oublié quelque chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Pt In Ws.PivotTables

  12. #12
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    ça y est, ça fonctionne.

    Merci pour votre aide

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

Discussions similaires

  1. [XL-2010] Macro Mise à jour automatique TCD
    Par tomAH74 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/07/2013, 11h20
  2. mise en forme TCD via macro vba
    Par Vinzz974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2012, 16h48
  3. [vba Excel] mise à jour de tableau
    Par ancel17 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 04/06/2007, 15h59
  4. [VBA-Excel]Mise à jour des liaisons powerpoint
    Par Mando dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2006, 23h51

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