Code VBA pour rafraîchir POWER PIVOT

Accueil – Le CFO masqué Forums Power Pivot Code VBA pour rafraîchir POWER PIVOT

6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Articles
  • #29092
    Marc-André Lépine
    Participant

    Bonjour,
    quel serait le code VBA à faire afin de rafraichir une Power Pivot avec des données provenant de l’externe via Power Query et des données provenant d’une table dans un autre worksheet.

    Je veux protéger le fichier (worksheet et workbook) afin que les usagers ne puissent pas modifier le fichier et ouvrir/modifier les query

    Merci

    #29099
    francispaquet
    Participant

    Marc-André,

    Le code VBA est simplement activeworkbook.refreshall

    Mais assurez-vous, dans les propriétés des connexions liées à PowerQuery, que le Enable Background Refresh n’est pas coché. Cela nous assure que les requêtes seront rafraîchies avant que les tableaux croisés dynamiques ne le soient.

    Francis

    #29100
    Marc-André Lépine
    Participant

    OK merci

    Par contre, quel serait le code pour s’assurer que les usagers ne peuvent pas modifier le fichier ou accéder à Power Query ou Power Pivot?

    Merci

    #29101
    francispaquet
    Participant

    Marc-André,

    Si vous ajoutez de la protection au niveau du classeur, les usagers ne pourront pas éditer vos requêtes PowerQuery, ni aller dans l’écran de PowerPivot.

    Le code pour ce faire est simplement: ActiveWorkbook.Protect Structure:=True, Windows:=False

    Comme n’importe quelle protection pour Excel, c’est suffisant pour les usagers moyens.

    Francis

    #29143
    Marc-André Lépine
    Participant

    Merci, le code marche, par contre, la mise à jour n’a pas le temps de finir avant que la macro re verrouille le fichier.
    Dans mes connections, j’ai la connection ThisWorkbookModel que je ne suis pas capable de décocher la case Enable background refresh, pourquoi?

    Merci beaucoup pour votre aide

    #29144
    francispaquet
    Participant

    Marc-André,

    ThisWorkbookModel est le modèle PowerPivot. Il ne faut donc pas le modifier dans les connexions.

    Pour le rafraîchissement, il faudrait peut-être insérer un délai. Essayez le code Application.Wait et passez le temps actuel plus un délai d’attente suffisant afin que la mise à jour soit complétée correctement avant de mettre la protection. Voir https://msdn.microsoft.com/fr-fr/library/office/ff822851.aspx par exemple.

    Francis

6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.