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
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    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
    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
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    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
    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
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    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
    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


    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
    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
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    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


    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
    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
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    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


    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
    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
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 12
    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