J'ai mis du code dans une feuille de mon classeur contenant une requête vers une liste SharePoint s'affichant sous la forme d'un tableau :
Pour récupérer la date de dernière actualisation de ce tableau et l'afficher dans une cellule de la feuille j'ai mis ce code dans la feuille en question :
VB:
Private Sub RecupDateActua(ByVal Target As ListObject)
dateString = Format(Target.RefreshDate, "dd/mm/yyyy hh:mm:ss")
Range("M1") = dateString
End Sub
Public Sub test()
Call RecupDateActua(Sheets("Feuil1").ListObjects("Rondes__2"))
End Sub
Le problème c'est qu'à l'exécution de la macro "test" j'obtient cette erreur :
C'est normal que tu aies une erreur ; c'est à cause de : Target.RefreshDate
.ResfresDate est une Propriété pour un TCD ou son cache (PivotTable ou
PivotCache) ; ce n'est pas une Propriété pour un Tableau structuré (ListObjects) tel que : .ListObjects("Rondes__2")
J'ai bien vu ton post #3, mais désolé, je n'ai pas de piste ; peut-être qu'un
autre intervenant, plus calé que moi sur les Tableaux structurés, pourras
te trouver une solution ? par exemple si chris ou job75 passent ici.
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