saisie de la date

TOUTOU03

XLDnaute Junior
Bonjour à tous

il est facile sur Excel de saisir une date en écrivant simplement le jour et le mois (JJ/MM) et Excel inscrit cette date comme vous le souhaitez (voir exemple ci-joint)

le soucis est que si vous saisissez cette date aujourd'hui par exemple pour dans 8 jours et que, gardant les mauvaises habitude en omettant de saisir en plus l'année, au lieu de faire un bon de 8 jours en avant, vous en faite un de 12 mois en arrière car il reste en 2012.

existe t'il un paramétrage à faire pour éviter ce problème?

Merci à tous
 

Pièces jointes

  • Date.xlsx
    9.9 KB · Affichages: 44
  • Date.xlsx
    9.9 KB · Affichages: 47
  • Date.xlsx
    9.9 KB · Affichages: 49

ROGER2327

XLDnaute Barbatruc
Re : saisie de la date

Bonjour à tous.


Une procédure évènementielle :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim oCel As Range
    For Each oCel In Cible.Cells
        If oCel.Column = 1 And IsDate(oCel) Then
            If CDbl(oCel.Value) - CDbl(Date) < -305 Then
                Application.EnableEvents = False
                oCel.Value = DateSerial(Year(oCel) + 1, Month(oCel), Day(oCel))
                Application.EnableEvents = True
            End If
        End If
    Next
End Sub
Mais je ne jurerais pas que ce soit un bon plan...​


Bonne soirée.


ROGER2327
#6335


Samedi 28 Sable 140 (Saint Cervelas, penseur - fête Suprême Quarte)
8 Nivôse An CCXXI, 7,1206h - fumier
2012-W52-5T17:05:22Z
 

gilbert_RGI

XLDnaute Barbatruc
Re : saisie de la date

Bonjour à tous.

Une procédure évènementielle :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim oCel As Range
    For Each oCel In Cible.Cells
        If oCel.Column = 1 And IsDate(oCel) Then
            If CDbl(oCel.Value) - CDbl(Date) < -305 Then
                Application.EnableEvents = False
                oCel.Value = DateSerial(Year(oCel) + 1, Month(oCel), Day(oCel))
                Application.EnableEvents = True
            End If
        End If
    Next
End Sub
Mais je ne jurerais pas que ce soit un bon plan...​


Bonne soirée.


ROGER2327
#6335


Samedi 28 Sable 140 (Saint Cervelas, penseur - fête Suprême Quarte)
8 Nivôse An CCXXI, 7,1206h - fumier
2012-W52-5T17:05:22Z

oui sans aucun doute un bon plan
 

ROGER2327

XLDnaute Barbatruc
Re : saisie de la date

Bonjour à tous.


Ma proposition précédente est sommaire, pour ne pas dire casse-gueule. Essayez de traiter 1/01/2011, par exemple.

Ceci devrait être moins mauvais :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Const NJ% = 63 'Correction pour les neuf semaines à venir (9 sem.= 63 jours)
Dim oPlg As Range, oCel As Range
Dim d As Date, x As Date
    d = Date
    x = DateSerial(Year(d) - 1, Month(d), Day(d) + NJ)
    Set oPlg = Intersect(Cible, Columns(1))
    If Not oPlg Is Nothing Then
        For Each oCel In oPlg.Cells
            If IsDate(oCel) Then
                If Year(oCel.Value) = Year(d) And oCel.Value <= x Then
                    Application.EnableEvents = False
                    oCel.Value = DateSerial(Year(oCel) + 1, Month(oCel), Day(oCel))
                    Application.EnableEvents = True
                End If
            End If
        Next
    End If
End Sub


À tester...


ROGER2327
#6336


Dimanche 1[SUP]er[/SUP] Décervelage 140 (Saint Alaodine, virtuose - fête Suprême Tierce)
9 Nivôse An CCXXI, 4,6639h - salpêtre
2012-W52-6T11:11:36Z
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 398
Membres
103 537
dernier inscrit
alisafred974