Microsoft 365 Afficher la date de dernière actualisation dans une cellule

sj4555

XLDnaute Junior
Bonjour,

J'ai cette requête (vers une liste SharePoint) qui s'actualise régulièrement :

requete_actua.png



J'aimerais comment il serait possible de récupérer et d'afficher la date de la dernière actualisation dans une cellule du classeur.

Cela permettrait notamment de détecter quand l'actualisation n'a pas eu lieu.

Merci :)
 

sj4555

XLDnaute Junior
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)
 

sj4555

XLDnaute Junior
Update,

Voici la façon de faire que j'ai décidé d'adopter et qui me permet de récupérer la date à chaque actualisation des données de la source,

(Le code ci-dessous permet dans mon cas d'écrire la date de dernière actualisation dans la cellule R4 de la feuille Suivi journalier air)

Merci à Jean-Eric, réponse sur le topic : https://forum.excel-pratique.com/excel/formule-actualisation-tableau-simple-146567

Dans ThisWorkbook :

VB:
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
 

Discussions similaires

Statistiques des forums

Discussions
314 781
Messages
2 112 908
Membres
111 696
dernier inscrit
dam7536