Accueil – Le CFO masqué › Forums › Power Pivot › Code VBA pour rafraîchir POWER PIVOT
Mots-clés : ~Powerpivot
- Ce sujet contient 6 réponses, 3 participants et a été mis à jour pour la dernière fois par armeniinho10, le il y a 1 année et 7 mois.
-
AuteurArticles
-
8 avril 2016 à 21 h 32 min #29092Marc-André LépineParticipant
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
9 avril 2016 à 10 h 53 min #29099Francis PaquetParticipantMarc-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
10 avril 2016 à 19 h 18 min #29100Marc-André LépineParticipantOK 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
10 avril 2016 à 20 h 40 min #29101Francis PaquetParticipantMarc-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
13 avril 2016 à 15 h 53 min #29143Marc-André LépineParticipantMerci, 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
13 avril 2016 à 17 h 36 min #29144Francis PaquetParticipantMarc-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
29 mars 2023 à 9 h 09 min #127035armeniinho10ParticipantBonjour,
J’ai un problème similaire à ce sujet.
Je cherche à faire une macro qui éditerai des classeurs excel à partir d’une requête Power Query que j’ai ensuite transformé en formule cube (modèle de données Power Pivot).
Ma macro va copier des codes qui proviennent de ma requête Power Query et les coller dans une cellule du modèle donnée ce qui mettra à jour les données de ma feuille. Je vais ensuite copier ma feuille et la coller dans un nouveau classeur.
Le problème étant que j’obtiens des #N/A.
Aucun problème sur les formules car lorsque je le fais manuellement cela fonctionne. Le code VBA est bon car parfois les données s’affichent correctement.
J’ai mis un “Application.Wait (Now + TimeValue(“00:00:20″))” pour laisser un peu de temps de charge.
Je me demande si l’actualisation de ma requête Power Query empêche l’actualisation de ma requête Power Pivot. Je ne suis pas capable de décocher la case Enable background refresh pour le WorkBookDataModel car la case est grisée.Ci-joint mon code.
Attachments:
You must be logged in to view attached files. -
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.