Rechercher : dans
Par :

VBA Excel Modification de la date en fonction

Dernière réponse le 12 sep 2007 à 08:51:41 a.dequidt, le 6 sep 2007 à 09:30:53 
 Signaler ce message aux modérateurs

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

Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « VBA Excel Modification de la date en fonction » dans :
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...

1

Papou93, le 6 sep 2007 à 20:49:46

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.

Répondre à Papou93

2

a.dequidt, le 7 sep 2007 à 08:42:29

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

Répondre à a.dequidt

3

 Papou93, le 12 sep 2007 à 08:51:41

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.

Répondre à Papou93