insérer date du jour seulement et afficher l'année et le mois automatiquement.

Checko

XLDnaute Nouveau
Bonjours ou bonsoir à vous tous. Merci d'avance pour vos futurs bon conseils.

Donc voilà mon problème, Pour chacune des colonnes de A à L, en la ligne 1 j'ai inscris les 12 mois de l'année. Sous la colonne N, j'ai inscrit en N1 2010, N2 2011, N3 2013 ainsi de suite jusqu'en 2025.

Sous chacun des mois, dans les cellules, je voudrais inscrire la valeur du jour seulement, mais voir afficher l'année, le mois et finalement le jour que j'ai inséré. Donc, A1 qui est Janvier en A2 si j'inscris 8 je voudrais voir afficher 2014-01-08 C1 qui est Mars, en C2 si j'inscris 8 je voudrais voir afficher 2014-03-08

Merci à vous de votre aides qui me sera fort utile.
 

Staple1600

XLDnaute Barbatruc
Re : insérer date du jour seulement et afficher l'année et le mois automatiquement.

Bonsoir à tous


Sans passer par une macro, je vois pas comment faire

Donc avec une macro (à mettre dans le code de la feuille concernée)
et me basant sur ces conditions
Pour chacune des colonnes de A à L, en la ligne 1 j'ai inscris les 12 mois de l'année. Sous la colonne N, j'ai inscrit en N1 2010, N2 2011, N3 2013 ainsi de suite jusqu'en 2025.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row > 1 Then
If Not Intersect(Target, Columns("A:L")) Is Nothing Then
Application.EnableEvents = False
Target.Value = DateSerial(Cells(Target.Row, "N"), Target.Column, Target.Value)
Target.NumberFormatLocal = "aaaa-mm-jj"
Application.EnableEvents = True
End If
End If
End Sub

PS: Test OK sur mon PC
01datedujour.png
C'est là qu'il faudra copier le code VBA.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : insérer date du jour seulement et afficher l'année et le mois automatiquement.

Bonsoir Checko, salut R@chid, JM,

Une autre façon de faire :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, dat$
Set r = Intersect(Target, [A2:L17])
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In r 'si entrées multiples (copier-coller)
  dat = r.Value2 & "/" & r.Column & "/" & Cells(r.Row, "N")
  If IsDate(dat) Then r = CDate(dat) Else r = ""
Next
Application.EnableEvents = True
End Sub
Fichier joint.

Bonne nuit et A+
 

Pièces jointes

  • Dates(1).xls
    40.5 KB · Affichages: 36
  • Dates(1).xls
    40.5 KB · Affichages: 37
  • Dates(1).xls
    40.5 KB · Affichages: 38
Dernière édition:

job75

XLDnaute Barbatruc
Re : insérer date du jour seulement et afficher l'année et le mois automatiquement.

Bonjour Checko, R@chid, JM,

Si l'on veut que l'entrée d'une "vraie" date répondant aux critères soit aussi acceptée utiliser :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, dat$, valide As Boolean
Set r = Intersect(Target, [A2:L17])
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In r 'si entrées multiples (copier-coller)
  dat = r.Value2 & "/" & r.Column & "/" & Cells(r.Row, "N")
  valide = False
  If IsDate(r) Then valide = Month(r) = r.Column And Year(r) = Cells(r.Row, "N")
  If IsDate(dat) Then r = CDate(dat) Else If Not valide Then r = ""
Next
Application.EnableEvents = True
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Dates(2).xls
    42 KB · Affichages: 23
  • Dates(2).xls
    42 KB · Affichages: 32
  • Dates(2).xls
    42 KB · Affichages: 33

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 151
dernier inscrit
nassim