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 vais reformuler ma problématique :

je veux juste pouvoir afficher l'heure de dernière actualisation de la source données dans une cellule du classeur,

Je parle de cette date (qui se met à jour à chaque fois qu'on clique sur "Actualiser tout", et dans mon cas car j'ai sélectionné les options aussi toutes les 15 minutes et à chaque ouverture de fichier):



Merci d'avance ;)
 
Dernière édition:

AlicePrince

XLDnaute Nouveau
Hello,

Voici un petit code qui te permet de récupérer la date et l'heure au moment de la sauvegarde de ton fichier :
(En supposant que tu veuilles l'info en cellule A1)

VB:
Public Function date_save()
    Cells(1, 1).Value = Format(Now, "MM/DD/YYYY HH:MM")
End Function


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call date_save
End Sub


Si tu veux vraiment que l'heure sans la date, tu peux changer la ligne par :
Code:
 Cells(1, 1).Value = Format(Time, "HH:MM")


En espérant que ça soit ce que tu recherches.
 

sj4555

XLDnaute Junior
Ah... non en fait c'est pas ce que je voulais ça m'affiche pas la bonne date là ça m'affiche 16h44 alors que la dernière actualisation à eu lieu à 16h41



En fait ta fonction récupère la date de sauvegarde du classeur mais ce qui m'intéresse c'est la date quand les données de la source sont mis à jour dans la requête :(
 
Dernière édition:

AlicePrince

XLDnaute Nouveau
Ah mince, j'avais mal lu ta demande.
Ce que je peux te proposer, c'est d'afficher dans ton fichier classeur la date + heure de sauvegarde de ton fichier source (je pars du principe que si le fichier est actualisé, c'est qu'il est sauvegardé)

Le code est sensiblement le même, par contre, tu vas le mettre dans ton fichier source et non dans le classeur.

VB:
Public Function date_save()
    Workbooks("Nomdufichier").Worksheets("Feuil2").Cells(1, 1).Value = Format(Now, "MM/DD/YYYY HH:MM")
End Function


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call date_save
End Sub

le "Nomdufichier" dans Workbooks est le nom de ton classeur.
A toi de modifier le nom et éventuellement le chemin vers le fichier si ce dernier est dans un sous-dossier.
 

sj4555

XLDnaute Junior
En fait, ce que je veux c'est juste récupérer la date d'actualisation des données du TCD, celle-ci n'influe pas sur la sauvegarde du classeur, la requête peut très bien s'actualiser sans que le fichier se sauvegarde.

En faisant quelque recherches : https://docs.microsoft.com/fr-fr/office/vba/api/excel.pivottable.refreshdate

Je suis arrivé à ce code que j'ai placé dans la feuille où je veux afficher la date :

VB:
Private Sub RecupDateActua(ByVal Target As PivotTable)

    Set pvtTable = Worksheets("Données Brutes").PivotTable("Rondes__2")
    dateString = Format(pvtTable.RefreshDate, "Long Date")
    Range("M1") = dateString

End Sub

"Rondes__2" est le nom du TCD . M1 est la cellule dans laquelle je veux copier la date.

Malheureusement ce code ne fonctionne pas, pourrais-tu m'éclairer sur ce qui manque ou ce que j'aurais mal fait ?

Merci.
 

AlicePrince

XLDnaute Nouveau
1er conseil que je peux te donner quand tu nommes qqch c'est de ne pas mettre d'espace ou d'accents.
Je renommerais ta plage de données en "donnees_brutes"

Essaye ce code :
VB:
Private Sub RecupDateActua(ByVal Target As PivotTable)

    Set pvtTable = Worksheets("donnees_brutes").Range("Rondes__2").PivotTable
    dateString = Format(pvtTable.RefreshDate,  "dd/mm/yyyy hh:mm:ss")
    Cells(1, 13).Value = dateString

End Sub

Je t'ai modifié le format pour que tu puisses récupérer l'heure d'actualisation en plus de la date, il me semble que tu voulais aussi cette info. Sinon, il te suffit d'enlever le "hh:mm:ss".
 

Discussions similaires

Statistiques des forums

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