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
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
A voir également:
- VBA Excel Modification de la date en fonction
- Fonction si et excel - Guide
- Suivi de modification word - Guide
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Comment calculer la moyenne sur excel - Guide
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
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.
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.
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
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
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
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
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.
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.