Je n'en ai pas mais je ne suis pas sur de comment exécuter la Sub, 2 possibilités :
- je la met dans la feuille et je lance l'actualisation pour voir si ça marche (il ne se passe rien)
- je la met dans un module et je l'exécute directement (il me propose juste la liste te toutes mes autres macros à exécuter)
Je l'ai déclenché manuellement dans mon test.
Il faudrait effectivement que tu l'associes à un évènement (clic sur un bouton, sauvegarde du fichier, ouverture ou fermeture du fichier...). En tout cas, s'il y a une autre solution, je ne la connais pas.
En fait l'erreur vient de moi ce n'est pas un TCD mais tableau simple (généré par la requête avec Power Query), comment modifier le code que tu m'as fournit pour que ça fonctionne avec un tableau simple ?
Option Explicit
Private Sub Workbook_Open()
Call InitializeQueries
End Sub
Dans un module standard :
VB:
Option Explicit
Dim colQueries As New Collection
Sub InitializeQueries()
Dim clsQ As clsQuery
Dim WS As Worksheet
Dim QT As QueryTable
Dim lo As ListObject
For Each WS In ThisWorkbook.Worksheets
For Each QT In WS.QueryTables
Set clsQ = New clsQuery
Set clsQ.MyQuery = QT
colQueries.Add clsQ
Next QT
On Error Resume Next
For Each lo In WS.ListObjects
Set QT = lo.QueryTable
Set clsQ = New clsQuery
Set clsQ.MyQuery = QT
colQueries.Add clsQ
Next lo
Next WS
End Sub
Dans un module de classe (clsQuery) :
VB:
Option Explicit
Public WithEvents MyQuery As QueryTable
Private Sub MyQuery_AfterRefresh(ByVal Success As Boolean)
If Success Then Sheets("Suivi journalier air").Range("R4").Value = Format(VBA.Now, "yyyy-MM-dd hh:mm")
End Sub