J'ai sur mon classeur une requête vers une liste SharePoint qui que je peux choisir d'actualiser en cliquant sur Actualiser tout :
Et qui s'actualiser également à chaque ouverture de fichier et toutes les 15 minutes :
Voici le code que j'ai réalisé en m'inspirant de ce que j'ai vu sur internet mais sans réellement comprendre puisque celui-ci ne fonctionne pas :
VB:
Private Sub RecupDateActua(ByVal Target As PivotTable)
Dim dateString As String
Set pvtTable = ActiveSheet.PivotTables("Rondes__2")
dateString = Format(pvtTable.RefreshDate, "dd/mm/yyyy hh:mm:ss")
Range("M1") = dateString
End Sub
J'ai mis ce code dans Feuille ou se situe ma requête.
Il ne se passe pourtant rien à chaque nouvelle actualisation alors que la date devrait s'écrire dans la cellule M1 de cette même feuille.
Bonjour,
Juste en passant car je ne sais pas forcément résoudre ton problème, mais dans ta copie d'écran2, il est indiqué Nom de la requete : Rondes (2) et dans le code que tu fournis, il est indiqué PivotTables("Rondes__2")
Cordialement
Lolote83
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