Actualisation automatique post requêtes

Bonjour Bonjour,

Je fais face à une problématique de "priorité" d’événements sur excel auquel vous avez peut être déjà fait face.

Je souhaite à l'ouverture d'un fichier excel que les données se rafraîchissent automatiquement, pour cela j'ai créé une macro assez simple :

Private Sub Workbook_Open()

    ActiveWorkbook.RefreshAll

End Sub

Mon a une architecture spécifique :

1) Je pioche ma source de données via Power Query sur une base brute

2) Après nettoyage des données, ces derniers arrivent proprement dans un onglet "Database" de mon fichier excel

3) A partir de cet onglet Data Base je réalise mes analyses et sort mes TCD

Voici donc mon problème, la macro rafraîchissant les données à l'ouverture du document opère ce rafraichissement avant que l'outil power query aille requête ma base brute et me sorte ma base propre. (1. rafraîchissement des données / 2. requêtes PQ et mis à jours de l'onglet "Database").

Hors je souhaiterais que la macro rafraîchisse après les requetes.

Merci d'avance

Bonjour,

Pour le prinicipe, à adapter.

Cdlt.

Public Sub RefreshAlldataConnections()
Dim cn As WorkbookConnection
Dim blnBackground As Boolean
    For Each cn In ActiveWorkbook.Connections
        With cn
            blnBackground = .OLEDBConnection.BackgroundQuery
            .OLEDBConnection.BackgroundQuery = False
            .Refresh
            .OLEDBConnection.BackgroundQuery = blnBackground
        End With
    Next
    ' la suite de la procédure
    ' une fois les requêtes Power Qurey actualisées...
End Sub

Bonjour Jean-Eric,

Merci pour votre réponse !

Serait-il possible de me commenter les étapes svp ? Je pourrais ainsi mieux l'adapter.

Merci,

Re,

Pour résumer, on n'autorise pas l'actualisation en arrière plan.

Donc les requêtes s'actualisent au lancement de la procédure.

Regarde l'aide d'Excel BackgroundQuery (Double clic sur le terme et F1).

Public Sub RefreshAlldataConnections()
'D?claration des variables
Dim cn As WorkbookConnection
Dim blnBackground As Boolean
    For Each cn In ActiveWorkbook.Connections
        With cn
            'On mémorise l'état de la propriété BackgroundQuery
            'True si la connexion est exécutée de façon asynchrone (en arrière-plan)
            blnBackground = .OLEDBConnection.BackgroundQuery
            .OLEDBConnection.BackgroundQuery = False
            .Refresh
            'On rétablit l'état inital de la propriété BackgroundQuery
            .OLEDBConnection.BackgroundQuery = blnBackground
        End With
    Next
    ' la suite de la procédure
    ' une fois les requêtes Power Qurey actualisées...
End Sub

Sinon, Tu demandes l'actualisation des requêtes à l'ouverture du classeur et tu décoches Activer l'actualisation en arrière-plan

, comme dans l'image ci-dessous.

A tester dans ton fichier...

snip 20180913172659

Hello Jean-Eric,

Désolé pour le retour tardif, merci beaucoup pour ton descriptif il était très utile.

Bonne journée à toi

Bonjour,

Pas rapide le LuluDudu !...

Plus sérieusement, pense à clore le sujet.

Cdlt.

Rechercher des sujets similaires à "actualisation automatique post requetes"