Actualisation automatique post requêtes

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
LuluDudu
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 septembre 2018
Version d'Excel : 2016

Message par LuluDudu » 13 septembre 2018, 15:02

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 :)
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'164
Appréciations reçues : 496
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 13 septembre 2018, 15:21

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
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
L
LuluDudu
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 septembre 2018
Version d'Excel : 2016

Message par LuluDudu » 13 septembre 2018, 16:18

Bonjour Jean-Eric,

Merci pour votre réponse !
Serait-il possible de me commenter les étapes svp ? Je pourrais ainsi mieux l'adapter.

Merci,
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'164
Appréciations reçues : 496
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 13 septembre 2018, 17:33

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.png
snip_20180913172659.png (8.36 Kio) Vu 313 fois
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
L
LuluDudu
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 septembre 2018
Version d'Excel : 2016

Message par LuluDudu » 4 octobre 2018, 15:29

Hello Jean-Eric,

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

Bonne journée à toi
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'164
Appréciations reçues : 496
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 4 octobre 2018, 16:52

Bonjour,
Pas rapide le LuluDudu !... :lol:
Plus sérieusement, pense à clore le sujet.
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message