Actualiser document uniquement à la première ouverture de la journée

Bonjour,

comment dois-je écrire cette macro, pour que à l'ouverture de mon document, si la date dans ce rectangle (rectangle 12)

image

ne correspond pas à la date du jour moins un jour, ça me fasse un refreshall du document. ou simplement une macro permettant d'actualiser mon document seulement à la première ouverture quotidienne du fichier ? Voici ce que j'ai essayé entre autre :

Private Sub Workbookopen(Cancel As Boolean)
    If Application.Date(Sheets("comparaison").Shape("rectangle 12") <> Application.Date(Date) - 1) Then
        this Workbook.RefreshAll
    End If
End Sub

merci à vous !

Bonjour,

ta date n'est pas forcément une date, cela ressemble plus à du texte; il faudrait comparer ce qui est comparable

et puis tes parenthèses sont mal placées

le mieux est de produire le fichier avec ce rectangle daté

Un test, faute de fichier

Sub TEST()
    If Sheets("comparaison").Shapes("Rectangle 12").TextFrame.Characters.Text <> Format(Date - 1, "d.m.yyyy") Then
        MsgBox "C'est différent"
    Else
        MsgBox "C'est pareil"
    End If
End Sub

bonjour,

Besoin de rien d'autre que cette macro :

Private Sub Workbook_Open()
   FirstOpened
End Sub

Private Sub FirstOpened()
On Error GoTo GESTERRNAME
   If ActiveWorkbook.Names("TestDate").Value <> "=" & CLng(Date) Then
      MsgBox "Bonjour"
   End If
Exit Sub
GESTERRNAME:
ActiveWorkbook.Names.Add Name:="TestDate", RefersTo:="=" & CLng(Date), Visible:=False
Resume Next
End Sub

A+

Bonjour à tous, merci pour vos réponses,

@Steelson, la date dans le rectangle est obtenue par une formule (=onglet!$I$2) et la valeur de la cellule I2 de l'onglet "onglet" est extraite d'une requête

@galopin01, je vais essayer les différentes solutions.

Merci à vous !! :)

Alors voici le résultat, ça fonctionne très bien. si je change la date, le document s'ouvre en actualisant tout, et si la date est juste (aujourd'hui moins un jour) le document s'ouvre sans actualiser, et donc beaucoup plus rapidement. Merci !!

Private Sub workbook_open()
    If Sheets("comparaison").Shapes("Rectangle 12").TextFrame.Characters.Text <> Format(Date - 1, "dd.mm.yyyy") Then
        ThisWorkbook.RefreshAll
    End If
End Sub

Les 2 questions sont contradictoires : Boire ou conduire il faut choisir !

Actualiser document uniquement à la première ouverture de la journée <> si la date est juste (aujourd'hui moins un jour) le document s'ouvre sans actualiser

Arès si t'amuse à changer la date de ton PC dans la journée... c'est un autre problème.

A+

Rechercher des sujets similaires à "actualiser document uniquement premiere ouverture journee"