Format date : passé ou tutur ?

marsienfr75

XLDnaute Junior
Bonjour,

Je saisi des dates, elles sont toutes passées. Je viens de saisir le 15 décembre et Excel la note comme étant celle de 2012. Pour avoir la date correcte, je dois préciser l'année 2011 : "15/12/11".

N'ayant pas encore fait d'achat futur, j'aimerais savoir si il existait une solution pour qu'une date saisie "JJ/MM" soit pour l'année passée et non celle à venir ?

Le contexte est : pour suivre mes achats, je note la date du paiement et celle de la réception de mon achat.

Merci à ceux qui prendront du temps pour me répondre pour m'aider. Ils m'aideront pour ma paresse !

Cordialement, Didier.
 

marsienfr75

XLDnaute Junior
Re : Format date : passé ou tutur ?

Bonjour à tous,

Il me semble que c'est un paramétrage Windows...
Panneau de Configuration / Options régionales

A + à tous

Bonjour,

Votre citation de Confucius éclaire ma réflexion !
J'apprécie votre ruban rouge (je suis séropo depuis 1983).

Hélas votre participation me semble tomber à coté : Je suis dans un fichier Excel, dans 2 colonnes et là il ne s'agit pas d'aujourd'hui (même si hier et demain sont en rapport). Je voudrais, à partir d'une saisie de 5 caractères (JJ/MM) obtenir une date avant aujourd'hui !

Je ne crois pas que ce soit Windows qui puisse apporter la réponse.

Merci quand même.

Didier.
 

marsienfr75

XLDnaute Junior
Re : Format date : passé ou tutur ?

A ma connaissance, ma version est VIsta !
Je ne vois pas en quoi Windows pourrait influer sur une "information" dans Excel, surtout pour une suite à une donnée saisie. Mais dans le doute, je réponds à ta demande.
Cordialement, Didier.
 

JCGL

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Bonjour à tous,

Si tes dates sont en A, place ce code dans le module de la feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
ActiveCell.Offset(-1, 0).Replace What:="/2012", Replacement:="/2011", LookAt:=xlPart
End If
End Sub

Tu tapes 11/5 et il sera posé 11/5/2011...

A + à tous
 

david84

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Bonjour, salut Jean-Claude,
à placer dans le module de la feuille concernée :
Code:
 Private Sub Worksheet_Change(ByVal target As Range)
If Not Intersect(target, Columns(1)) Is Nothing Then 'adapter la plage de fonctionnement de la macro
    On Error Resume Next
    target = DateSerial(2011, Month(target), Day(target))
End If
End Sub
A+
 

marsienfr75

XLDnaute Junior
Re : Format date : passé ou tutur ?

Bonjour David,

Merci pour ta proposition.

J'ai tenté (il y a longtemps) de faire une Macro : je la traine sans savoir comment m'en débarrasser !
Je suis très nul ! Le copier - coller dans la cellule ne fonctionne pas (cela ne m'étonne pas puisque tu me suggère une Macro).
Afin que ta proposition ne serve pas uniquement qu'à mon cas personnel, serait il possible que tu indiques (pour une seul cellule à saisir) le résultat (avec la macro adéquate).

Je joins un document pour exemple (vide au départ) 3 colonnes avec des dates à saisir.

Je tutoie, j'espère que cela ne pose pas problème ! J'invite les autres à me tutoyer!

Cordialement, Didier.
 

Pièces jointes

  • format dates.xls
    13.5 KB · Affichages: 44
  • format dates.xls
    13.5 KB · Affichages: 49
  • format dates.xls
    13.5 KB · Affichages: 50

JCGL

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Bonjour à tous,
Salut David à qui j'ai "pompé" la formule

Ton fichier avec le code placé là où il faut...
Tu choisis ton année en A1
Tu tapes dans les colonnes A à C une date au format jj/mm et hop...

A++
A + à tous
 

Pièces jointes

  • Change Année par A1.xls
    58.5 KB · Affichages: 45
Dernière édition:

david84

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Re
je ne sais pas si j'ai bien compris ton attente : je t'ai placé le code dans la feuille.
A toi de comparer les dates saisies dans la zone en jaune avec celles saisies en dehors de cette zone.
Concernant le tutoiement, pas de soucis évidemment.
Teste également le code de Jean-Claude en le copiant dans la feuille 2 par exemple et en rentrant des dates.
A+
 

Pièces jointes

  • format dates.xls
    32 KB · Affichages: 60
  • format dates.xls
    32 KB · Affichages: 65
  • format dates.xls
    32 KB · Affichages: 59

ROGER2327

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Bonsoir à tous


Un essai, visant à interdire la saisie d'une date ultérieure à la date courante dans l'ensemble de la feuille où elle placée.

VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim x As Date, oCel As Range
    For Each oCel In Cible.Cells
        If IsDate(oCel) Then
            x = oCel.Value
            If x > Now Then
                x = DateSerial(Year(Now), Month(x), Day(x))
                If x > Now Then x = DateSerial(Year(x) - 1, Month(x), Day(x))
                Application.EnableEvents = 0
                oCel.Value = x
                Application.EnableEvents = 1
            End If
        End If
    Next
End Sub


Bonne soirée.


ROGER2327
#5522


Lundi 23 Gueules 139 (Occultation de Saint J Torma, euphoriste - fête Suprême Quarte)
28 Pluviôse An CCXX, 7,6645h - cyclamen
2012-W07-5T18:23:41Z
 

marsienfr75

XLDnaute Junior
Re : Format date : passé ou tutur ?

Bonsoir à tous


Un essai, visant à interdire la saisie d'une date ultérieure à la date courante dans l'ensemble de la feuille où elle placée.

VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim x As Date, oCel As Range
    For Each oCel In Cible.Cells
        If IsDate(oCel) Then
            x = oCel.Value
            If x > Now Then
                x = DateSerial(Year(Now), Month(x), Day(x))
                If x > Now Then x = DateSerial(Year(x) - 1, Month(x), Day(x))
                Application.EnableEvents = 0
                oCel.Value = x
                Application.EnableEvents = 1
            End If
        End If
    Next
End Sub


Bonne soirée.

ROGER2327


Bonjour et merci Roger,

En premier lieu j'aimerais savoir comment me débarrasser de la macro erronée que j'ai faite il y a longtemps !

Je ne crois qu'il faille interdire une date future puisque je ne saisie pas l'année ! Si aujourd'hui je tape "10/10" je vais avoir la date du 10/10/2012 alors que je voudrais celle passée et non futur : 10/10/2011.

Peut être, devrais je demander comment une date saisie sans l'année devienne une date passée (à la fin de chaque année, ce problème ne se pose pas).

Cordialement, Didier.
 

ROGER2327

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Re


(...) Si aujourd'hui je tape "10/10" je vais avoir la date du 10/10/2012 alors que je voudrais celle passée et non futur : 10/10/2011. (...)


Avez-vous vraiment essayé la procédure proposée ?

Moi, si !

Ajourd'hui 21/2/2012, je saisis 15/2, j'obtiens 15/2/2012.
Je saisis 10/10, j'obtiens 10/10/2011.

Et vous ?



ROGER2327
#5528


Vendredi 27 Gueules 139 (Saint Tabagie, cosmogène - fête Suprême Quarte)
2 Ventôse An CCXX, 0,3746h - cornouiller
2012-W08-2T00:53:56Z
 

marsienfr75

XLDnaute Junior
Re : Format date : passé ou tutur ?

Bonjour Roger,

Non, je n'ai pas essayé.

Je souhaiterais en premier lieu, me débarrasser de ma tentative de Macro qui est enregistrée et ne sert à rien.
Je crois y être parvenu !

J'ai essayé mais tout cela est du chinois pour moi. J'ai modifié le nom de la macro avec comme titre Date_passé : rien que cela : problème ou non ?
Dois je remplacer le x que vous noté par quelque chose de ma feuille ?

Lorsque j'ignore la date de réception, je note (je saisi) 1 ce qui me donne 01/01/1900 : cela me convient (j'ai mis un format conditionnel sur la colonne (si vide coloré en rouge, sinon coloré vert : pour la couleur de fond, la couleur du contenu est la même que celle du fond, si j'ai besoin de la connaitre je vais sur la cellule la consulter) : cela m'est utile si le paiement est vert mais la réception rouge !

Je n'ai besoin de cette macro que dans les 2 colonnes AF & AG

Je m'interroge : cela ne concerne que ce qui est saisi ?

Merci.

Didier.
 

ROGER2327

XLDnaute Barbatruc
Re : Format date : passé ou tutur ?

Re...


Non, je n'ai pas essayé.
Je m'en doutais.
Je souhaiterais en premier lieu, me débarrasser de ma tentative de Macro qui est enregistrée et ne sert à rien.
Je crois y être parvenu !
Oui, j'ai ouvert votre classeur et constaté qu'il n'y trainait aucune procédure.
J'ai essayé mais tout cela est du chinois pour moi. J'ai modifié le nom de la macro avec comme titre Date_passé : rien que cela : problème ou non ?
En aucun cas le nom de la procédure ne doit être modifié. Vous voulez détecter qu'une cellule a été modifiée et, dans le cas où une date y a été saisie, la traiter. Il faut donc que la procédure soit déclenchée par la modification de cellule, ce que VBA fait en traitant l'évènement Worksheet_Change.
Dois je remplacer le x que vous noté par quelque chose de ma feuille ?
Non.
Lorsque j'ignore la date de réception, je note (je saisi) 1 ce qui me donne 01/01/1900 : cela me convient
Parfait !
(j'ai mis un format conditionnel sur la colonne (si vide coloré en rouge, sinon coloré vert : pour la couleur de fond, la couleur du contenu est la même que celle du fond, si j'ai besoin de la connaitre je vais sur la cellule la consulter) : cela m'est utile si le paiement est vert mais la réception rouge !
Pas trace de tout cela dans votre classeur.
Je n'ai besoin de cette macro que dans les 2 colonnes AF & AG
Dans ce cas, il faut modifier légèrement la procédure. Vous trouverez la procédure dûment modifiée dans le module de feuille de la copie de votre classeur que je joins à ce message.
Je m'interroge : cela ne concerne que ce qui est saisi ?
Pas certain de bien comprendre. Si la question est "La procédure s'appliquera-t-elle aux données saisies avant son implantation ? Ou s'appliquera-t-elle uniquement aux données saisies après son implantation ? la réponse est non, oui. Toutefois, pour appliquer la procédure aux données antérieures à l'implantation, il suffit d'en faire un copié/collé après l'implantation.
De rien... Mais ça fait toujours plaisir !

À part cela, j'ai pris la liberté de mettre les colonnes AF:AG au format "Date", c'est plus joli.​


ROGER2327
#5556


Lundi 2 Pédale 139 (Saint André Marcueil, ascète cycliste - fête Suprême Quarte)
6 Ventôse An CCXX, 6,0423h - asaret
2012-W08-6T14:30:05Z
 

Pièces jointes

  • Copie de format dates_178837.xls
    31.5 KB · Affichages: 48

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 607
dernier inscrit
lolo1970