Raccourcis insertion date

Fermé
Eldo21 - 19 déc. 2018 à 14:47
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 - 21 déc. 2018 à 11:28
Bonjour,

Je travaille sur un document avec chaque fois une feuille par mois. J'ai une colonne avec les dates pour les différents inserts. Mais je dois chaque fois mettre le jour, le mois et l'année. Y a-t-il moyen de mettre un format pour que je ne mette que le jour, et il complète mois en fonction de la feuille ?
Exemple pour la feuille Avril 2018
Date Description Obs
3 jkklu -
||
3avr18 jkklu -


Configuration: Android / Chrome 70.0.3538.80
A voir également:

1 réponse

danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
19 déc. 2018 à 15:22
Bonjour,

"et il complète mois en fonction de la feuille ? "

? En fonction du nom de la feuille ? Et sous quelle forme est ce nom ? 04 ou avril ?

Ce sera une solution avec macro.

Daniel
0
Tôt ou tard on finit tous par rejoindre le côté obscur des macros... Les noms des feuilles importent peu. Pour l'instant c'est Avril, mais les changer en 04 coûte très peu (pour l'instant)
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74 > Eldo21
20 déc. 2018 à 11:26
"Tôt ou tard on finit tous par rejoindre le côté obscur des macros.."

Bof, on peut dire d'Excel et des macros ce que Clausewitz disait de la guerre : "c'est la continuation de la diplomatie par d'autres moyens". C'est bien utile (pas la guerre, les macros), dans ton cas, en particulier. La macro utilise les accents pour les noms des mois. Si ce n'est pas ton cas, modifie, ou la macro, ou les noms des feuilles. Par contre, elle ne s'occupe pas des majuscules.

Met cette macro dans le module "ThisWorkbook". Après, ça fonctionne tout seul :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Dim Mois As Variant, MoisNum As Variant
  If Target.Column = 1 Then
    Mois = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", _
      "septembre", "octobre", "novembre", "décembre")
    
    With Sh
      If Target.Value < Day(DateSerial(Year(Date), _
        Application.Match(Sh.Name, Mois, 0) + 1, 0)) Then
        Application.EnableEvents = False
        Target.Value = DateSerial(Year(Date), _
          Application.Match(Sh.Name, Mois, 0), Target.Value)
        Application.EnableEvents = True
      End If
    End With
  End If
End Sub


Attention la macro est prévue pour fonctionner avec les dates en colonne A. Si ce n'est pas le cas, change le numéro de colonne :

If Target.Column = 1 Then


Si tu as un souci pour mettre en place la macro, dis-le. Enfin, formate la colonne au format personnalisé :
jmmmaa

Daniel
0
J'essaie tout de suite. Merci bien.
0
Euh... gros problème... Quand je disais qu'on finit tous par faire des macros, ça ne voulais pas dire que j'en fais moi-même
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
21 déc. 2018 à 11:28
J'avais compris, puisque je l'ai créée pour toi. Pour l'installer, fais un clic droit sur un onglet, clique sur "visualiser le code". Dans la fenêtre VBE, repère le VBAProject qui porte le nom de ton classeur. Double clique sur "ThisWorkbook" et colle le code dans la partie droite.
0