Figer la date du jour avec fonction AUJOURD'HUI

Bonjour à tous !

Je viens vers vous pour un petit problème. J'aimerais pouvoir figer la date créée par la fonction "AUJOURD'HUI" afin qu'elle ne se mette pas à jour automatiquement à chaque ouverture de fichier.

Aujourd'hui, j'ai un fichier qui fonctionne avec le calcul itératif MAIS, le problème est que ce fichier est utilisé en réseau et donc que plusieurs personnes y accèdent et sans savoir pourquoi, l'option "calcul itératif" se désactive seule selon les autres fichiers excels ouverts en même temps.

Bref, cette solution ne me convient plus et il me faudrait passer par du VBA pour que la date ne change plus sur les différentes formules qui utilisent cette fonction.

De manière plus concrète, s'agissant de mon fichier, plusieurs colonnes utilisent la fonction AUJOURD'HUI, pour divers objectifs. Ces formules sont réparties sur deux feuilles :

  • La feuille "Dossiers",
  • La feuille "Factures 2024".

Il faudrait, s'il vous plait, un code VBA qui fixe ces dates une fois que la formule a "édité" la cellule (je ne suis pas sûr que le terme soit bon, mais soit :D)

  1. Dans la première :

    D'une part, la colonne G récupère la date d'ouverture du dossier dès que le nom d'un client est entré en colonne A.

    D'autre part, la colonne H, suivant la même condition, créé un numéro de dossier selon un format bien précis en prenant en compte l'année de création.
  2. Dans la seconde :

    En premier lieu, les cellules F11 et suivantes récupèrent le mois de création d'une nouvelle facture en fonction des données entrées en colonne A (cela me sert après à calculer le CA par mois)

    En deuxième lieu, les cellules G11 et suivantes créent un numéro de facture si une donnée est entrée en colonne A

    En dernier lieu, les cellules F11 et suivantes affichent la date de création de la facture.

Pouvez-vous m'aider svp ? :D

Si cela peut aider quelqu'un je viens de trouver un fixe à mon problème :

L'activation du calcul itératif était à faire tous les jours. J'ai donc pris le problème sous un autre angle en insérant, en plus de mes formules, une activation automatique du calcul itératif via cette macro :

Private Sub Workbook_Open()
Application.Iteration = True
End Sub

Et c'est parfait !

Par contre, sous mac, comment faire en sorte de considérer ce fichier comme "non dangereux" et lui activer les macros par défaut ?

Bonjour,

Juste à titre informatif --> Date figée

Par contre, sous mac, comment faire en sorte de considérer ce fichier comme "non dangereux" et lui activer les macros par défaut ?

Non sur MAC vous devez toujours activer les macros pour qu'elles fonctionnent.
Si vous ne confirmez pas, à titre de précaution ou de vérification, cela vous permet aussi d'aller voir quels sont les codes qui sont dans un fichier
Exemple de vérification : ce que vous avez fait, à savoir de mettre des codes qui s'exécutent à l'ouverture d'un fichier

Si vous activez le calcul itératif par code pensez aussi à le remettre à FALSE lors de la fermeture du fichier

si ok et terminé,

Cordialement

Bonjour !

Merci pour la réponse c'est gentil

Bonjour,

Juste à titre informatif --> Date figée

J'avais vu, mais je n'arrivais pas à adapter ce code à mon problème, je débute vraiment ! Ce qui est proposé correspond à une date dans une cellule et donne un format déjà, alors que le miens de format en sortie est spécifique. Mais si tu as une piste, je suis pleinement preneur !

Concernant cette phrase, je ne comprends pas où tu veux en venir, peux tu m'expliquer stp ?

Si vous activez le calcul itératif par code pensez aussi à le remettre à FALSE lors de la fermeture du fichier

D'avance, merci

J'avais vu, mais je n'arrivais pas à adapter ce code à mon problème, je débute vraiment ! Ce qui est proposé correspond à une date dans une cellule et donne un format déjà, alors que le miens de format en sortie est spécifique. Mais si tu as une piste, je suis pleinement preneur !

Si cela fonctionne comme vous l'avez écrit. Pas besoin de changer

Concernant cette phrase, je ne comprends pas où tu veux en venir, peux tu m'expliquer stp ?

Si vous activez le calcul itératif par code pensez aussi à le remettre à FALSE lors de la fermeture du fichier

C''est une option excel si je ne me trompe. Donc si vous ouvrez d'autres fichiers elle restera active sur d'autres fichiers que vous pourriez utiliser
Pour remettre la valeur à FALSE par code, vous ajoutez ceci au même endroit que votre code Open

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Iteration = False
End Sub

Rem : dans votre fichier vous avez mis votre tableau au format structuré. Bonne règle --> Ne laissez jamais de lignes sans données dans un tableau mis au format structuré. Là vous devriez supprimer toutes les lignes depuis la ligne 18 jusque la dernière ligne; donc la ligne 509.

Merci pour cette réponse complète. Juste une question, comment serait le code complet avec ton ajout et mon code initial stp ?

Private Sub Workbook_Open()
Application.Iteration = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Iteration = False
End Sub

Bonjour,

pour explication le calcul itératif concerne l'application et non le classeur.
Il dépend donc du 1er classeur ouvert
et reste actif pour les autres ouverts en suivant.
Le désactiver n'élimine pas totalement les inconvénients. Si on enregistre un fichier lorsqu'il est actif, celui-ci enregistre l'état de cette option même s'il ne l'avait pas.
A part fixer sa valeur à chaque activation de tous les classeurs impossible de connaitre son état exact pour un classeur.
eric

Bonjour

Juste une question, comment serait le code complet avec ton ajout et mon code initial stp ?

Que voulez-vous dire par code complet ?
Je vous ai donné le deuxième code à placer au même endroit que le code Open. Open s'exécute à l'ouverture du fichier et Before_Close s'exécute à la fermeture du fichier.

Rechercher des sujets similaires à "figer date jour fonction aujourd hui"