Mise à jour des formules en fonction de la date

Bonjour

Depuis plusieurs moi j'ai ce problème.

J'ai un fichier récapitulatif de mes indicateurs. Ce fichier va récupérer des données de certains onglets on fonction de la date de la veille.

Mais la mise à jour ne ce fait pas automatiquement je suis obligé de cliquer dans la cellule de date où il y a la formule : aujourd'hui -1 et appuyer sur entrée. Quand j'appuie sur entrée, là, la date ce met bien à jour.

image image

Du coup mon tableau avec les formules en gris ne se mettent pas non plus à jour il faut que je clique dans chaque cellule et que je fasse "entrée" pour que le chiffre se mette à jour. J'ai essayé avec l'idée d'un ami qui m'a dit de faire une macro en cliquant sur la date d'aujourd'hui et après entrée. Afin que la macro s'execute dès que l'on arrive sur la feuille : daily prod tv. Mais je pense que cela ne fonctionne pas il faut peut être mettre le code macro dans un autre endroit?

image

Avez vous une astuce ou une explication?

Pour info je suis en microsoft 365.

Merci d'avance pour votre aide! (PS j'ai mis une copie du fichier avec uniquement deux onglets pour avoir un exemple).

8weekly-report.xlsm (201.30 Ko)

Bonjour

Bon déjà je suppose que vous parlez de la formule qui se trouve en A43 ?

Dans le code pourquoi A150, il n'y a rien dans cette cellule à part la couleur Verte

Cette mise à jour doit se faire à l'ouverture du fichier ?

Cordialement

Salut Dan je crois avoir compris mon erreur

Ma formule aujourdhui - se trouve en cellule a46. Et les formules de mon tableau se mettent à jour en fonction de la date en A150. Et la date en a150 vient chercher la date en a46 (date j-1) pour avoir les infos de la veille. J'espère que j'arrive à me faire comprendre...

Pour qu'elle se mette à jour il faut que dès que je vais sur la feuille daily prod on rentre dans la cellule et on valide avec entrée. Et là cela met à jour la date.

Je n'explique pas pourquoi il faut faire cela mais c'est ce que j'ai trouvé. Du coup dans le code il faut faire :

Private Sub CommandButton1_Click()
Sheets("Prog").Select
Sub Date_moins_un_daily()
'
' Date_moins_un_daily Macro
'

'
Range("A46").Select
ActiveCell.FormulaR1C1 = "='Daily Prod TV'!R46C1"
Range("A46").Select

Non? qu'en penses tu ?

Bonjour,

Ma formule aujourdhui - se trouve en cellule a46.
Et les formules de mon tableau se mettent à jour en fonction de la date en A150.

Non. Je me demande si vous avez lu ce que j'ai écrit. Reprenez votre fichier posté ....
Ensuite répondez aux questions que j'ai posées dans mon post précédent si vous voulez que je réponde à votre souci

Bonjour

- En A46 oui c'est la formule aujourd'hui -1

- Et pourquoi A150 dans le code c'est parce que mes infos en gris (voir ci dessous) ce mettent à jour en fonction de la date en A150.

- La mise à jour doit se faire à l'ouverture du fichier ou dès que l'on click sur l'onglet concerné : Daily Prod TV

image

Bonjour

- En A46 oui c'est la formule aujourd'hui -1

Et pourquoi A150 dans le code c'est parce que mes infos en gris (voir ci dessous) ce mettent à jour en fonction de la date en A150

Vous persistez là... relisez mon post précédent

Vous me parlez de la celle en a43?

Désolé, sur le fichier que j'ai refait exprès pour le poster c'est a46. Et c'est pas A150 mais A147...

Désolé je n'avais pas fait attention que mon fichier d'origine et celui que j'ai mis sur le forum ne correspondent pas.

Donc

- En A43 oui c'est la formule aujourd'hui -1

- Et pourquoi A147 dans le code c'est parce que mes infos en gris (voir ci dessous) ce mettent à jour en fonction de la date en A147.

- La mise à jour doit se faire à l'ouverture du fichier ou dès que l'on click sur l'onglet concerné : Daily Prod TV

Re

Ok. Si on tient compte de votre fichier à savoir les cellules A46 et A150. Essayez ceci

- Click droite sur l'onglet "Daily Prod TV"
- Choisir "Visualiser le code"
- Dans la fenêtre, supprimez tous les codes et mettez les codes ci-dessous

Private Sub Worksheet_Activate()
Range("A150") = Range("A46").Value
End Sub

Private Sub Worksheet_Deactivate()
Range("A150").ClearContents
End Sub

- Allez dans l'editeur VBA et dans THISWORKBOOK, mettez ce code

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("IN").Activate
End Sub

Fermer votre fichier et faites un test

A noter qu'il n'y aura plus de formule en A150. c'est le code qui mettre la cellule à jour en fonction de votre cellule A46

Si ok, n'oubliez pas :

Cordialement

Merci pour votre aide Dan!!

Rechercher des sujets similaires à "mise jour formules fonction date"