VBA Excel Modification de la date en fonction

Fermé
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 - 6 sept. 2007 à 09:30
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 - 12 sept. 2007 à 08:51
Salut,

Je cherche a ce qu'a l'ouverture de mon classeur, si celui ci possede le nom "logiciel_offre.xls", on affecte aux cellules C12 et D13 la date d'aujourdhui:


Private Sub Workbook_Open()

Dim ToDay As Date
If ActiveWorkbook.Name = "Logiciel_offres_v8.xls" Then
Range("C12:E12").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("D13").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
End If
End Sub


Et je voudrais qu'a l'ouverture d'une coipe de ce fichier, la date ne soit pas celle d'aujourd'hui mais celle de la création de ce fichier
A voir également:

3 réponses

Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
6 sept. 2007 à 20:49
Bonjour a.dequidt,

J'ai déjà répondu à cette question dans ton post Aide pour VBA sous Excel Aide pour VBA Excel du 04/09/2007.

Il s'agit bien de la même question, non ?

Cordialement.
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
7 sept. 2007 à 08:42
En fait cette solution ne marche pas, mais j'ai pensé a autre chose....


Je m'explique.

En C12 et D13, la date d'aujourd'hui via la fonction =AUJOURDHUI()
en M1, la date de l'ancienne ouverture via une copie de la date a la fermeture

J'aimerai créer une boite de dialogue a l'ouverture du fichier, qui informerai l'utilisateur de la date de l'ancienne ouverture, et lui laisserai le choix de la date, soit la date de l'ancienne ouverture soit la date
0
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
12 sept. 2007 à 08:51
Bonjour a.dequidt,

Voici la solution qui me paraît la plus simple :

Private Sub Workbook_Open()
With Sheets("feuil1").[m1]
If Not IsDate(.Value) Then .Value = Date: Exit Sub
Select Case .Value
Case Is = Date
Exit Sub
Case Else
R = MsgBox("La date actuelle du fichier est : " & .Value & vbCrLf & _
"Voulez-vous la remplacer par la date du jour ?", vbYesNo + vbQuestion, "Date fichier")
If R = vbYes Then .Value = Date
End Select
End With
End Sub


Je m'explique :

A l'ouverture du classeur, le programme teste la valeur contenue dans la cellule M1 : si elle est vide, ou contient autre chose qu'une date, alors M1 est mise à jour avec la date du jour.
Si M1 contient la date du jour, on sort du programme sans rien changer.
Si M1 contient une date antérieure à la date du jour, une boîte de dialogue propose une mise-à-jour qu'on est libre d'accepter ou non.
Enfin, il suffit d'entrer la formule [=M1] dans les cellules C12 et D13.

NB : remplaces "feuil1" par le nom de ta feuille.
[m1] est l'équivalent de range("m1") et c'est plus simple à écrire.

Espérant avoir été utile.

Cordialement.
0