XL 2021 Format date dans un en-tête

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous,
Dans le fichier joint, j'aimerai pouvoir imprimer en en tête la date du jour sous le format "jjjj jj mm aaaa" (exemple : mercredi 30 08 2023 au lieu de 30/08/2023)
Je sais le faire dans une cellule mais pas dans l'en tête.

Si vous avez une idée, je suis preneur,

Portez-vous bien !
Pierre
 

Pièces jointes

  • courses _LV.xlsm
    268.7 KB · Affichages: 6
Solution
Bonjour à tous les 2

@Constantin

Peut-on imaginer cette macro sans la zone d'impression définie dans mon exemple comme B2:D3 dès lors que je l'aurai définie manuellement avant d'activer la macro ?
Si tu veux définir toi même la zone d'impression tu supprimes

1693464635320.png


Et ce seras à toi de la définir comme tu veux

Tout mon code est commenté cela te permet de modifier ou supprimer ce que tu veux comme paramètre

Quand il y a une apostrophe devant une ligne de code la ligne n'est pas exécutée par excel
exemple :
VB:
'.PrintOut                                              ' Impression ==> Désactiver pour les tests A activer pour l'impression

Si tu enleves la petite apostrophe au début l'impression se fait apres la...

Dranreb

XLDnaute Barbatruc
Bonjour.
Il ne semble pas y avoir de moyen intégré de le faire.
À votre place j'exécuterais quelque part (dans une Sub Workbook_Open peut être ?) :
VB:
ActiveSheet.PageSetup.CenterHeader = Format(Date, "dddd dd mmmm yyyy")
 

Phil69970

XLDnaute Barbatruc
Bonjour @Constantin
Edit bonjour Bernard

Je te propose ceci à mettre dans un module
Tu crée un bouton impression et tu lui affecte cette macro

VB:
Sub Impression()
Application.ScreenUpdating = False
With ActiveSheet                                        ' Les paramètres s'applique à la feuille active
    With .PageSetup
     
        '******** Zone d'impression
        .PrintArea = "B2:D3"                            ' A adapter si besoin
        '********
     
        .Orientation = xlPortrait                           ' Portait ou  xlLandscape paysage
        .CenterHorizontally = False                         ' Centré horizontalement
        .CenterVertically = False                           ' Centré verticalement
        .LeftMargin = Application.InchesToPoints(0.24)      ' Marge gauche
        .RightMargin = Application.InchesToPoints(0.24)     ' Marge droite
       
        .TopMargin = Application.InchesToPoints(0.75)       ' Marge haut
        .BottomMargin = Application.InchesToPoints(0.75)    ' Marge bas
       
        .HeaderMargin = Application.InchesToPoints(0.31)    ' En tête
        .FooterMargin = Application.InchesToPoints(0.31)    ' Pied de page

        .Zoom = False                                       ' Pas de zoom
        .FitToPagesTall = 1                                 ' 1 page en hauteur
        .FitToPagesWide = 1                                 ' 1 page en largeur
        .PaperSize = xlPaperA5                              ' Format papier A5
       
        .CenterHeader = Format(Date, "dddd dd mmmm yyyy") 'Date du jour entete de page
   
    End With
    .PrintPreview                                           ' Prévisualisation à supprimer éventuellement
    '.PrintOut                                              ' Impression ==> Désactiver pour les tests A activer pour l'impression
End With
End Sub

Et tu auras ....

1693407283239.png


Merci de ton retour
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour @Constantin
Edit bonjour Bernard

Je te propose ceci à mettre dans un module
Tu crée un bouton impression et tu lui affecte cette macro

VB:
Sub Impression()
Application.ScreenUpdating = False
With ActiveSheet                                        ' Les paramètres s'applique à la feuille active
    With .PageSetup
    
        '******** Zone d'impression
        .PrintArea = "B2:D3"                            ' A adapter si besoin
        '********
    
        .Orientation = xlPortrait                           ' Portait ou  xlLandscape paysage
        .CenterHorizontally = False                         ' Centré horizontalement
        .CenterVertically = False                           ' Centré verticalement
        .LeftMargin = Application.InchesToPoints(0.24)      ' Marge gauche
        .RightMargin = Application.InchesToPoints(0.24)     ' Marge droite
      
        .TopMargin = Application.InchesToPoints(0.75)       ' Marge haut
        .BottomMargin = Application.InchesToPoints(0.75)    ' Marge bas
      
        .HeaderMargin = Application.InchesToPoints(0.31)    ' En tête
        .FooterMargin = Application.InchesToPoints(0.31)    ' Pied de page

        .Zoom = False                                       ' Pas de zoom
        .FitToPagesTall = 1                                 ' 1 page en hauteur
        .FitToPagesWide = 1                                 ' 1 page en largeur
        .PaperSize = xlPaperA5                              ' Format papier A5
      
        .CenterHeader = Format(Date, "dddd dd mmmm yyyy") 'Date du jour entete de page
  
    End With
    .PrintPreview                                           ' Prévisualisation à supprimer éventuellement
    '.PrintOut                                              ' Impression ==> Désactiver pour les tests A activer pour l'impression
End With
End Sub

Et tu auras ....

Regarde la pièce jointe 1177520

Merci de ton retour
Bonjour Phil69970,
Concernant la zone d'impression, elle varie évidemment en fonction de ma liste de courses et je la définis en fonction des besoins (mise en page - zone impression - définir).
Peut-on imaginer cette macro sans la zone d'impression définie dans mon exemple comme B2:D3 dès lors que je l'aurai définie manuellement avant d'activer la macro ?
Pour info, mon nouveau en matière de programmation est plutôt pitoyable...
Je vais faire des essais.
Merci de ton aide,
Pierre
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Qu'est-ce qui coince ?
À votre place j'exécuterais quelque part (dans une Sub Workbook_Open peut être ?)
Je ne sais pas comment créer cette Sub Workbook ni où la mettre. Alors je l'ai casée dans un module qui n'a pas aimé du tout :mad:
Sans doute me suis-je planté dans le code.
J'imagine que si je crée un Sub Workbook il faut que je termine par un End Sub ?
Je sais, je ne suis pas bon du tout.
Merci encore
Pierre
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous les 2

@Constantin

Peut-on imaginer cette macro sans la zone d'impression définie dans mon exemple comme B2:D3 dès lors que je l'aurai définie manuellement avant d'activer la macro ?
Si tu veux définir toi même la zone d'impression tu supprimes

1693464635320.png


Et ce seras à toi de la définir comme tu veux

Tout mon code est commenté cela te permet de modifier ou supprimer ce que tu veux comme paramètre

Quand il y a une apostrophe devant une ligne de code la ligne n'est pas exécutée par excel
exemple :
VB:
'.PrintOut                                              ' Impression ==> Désactiver pour les tests A activer pour l'impression

Si tu enleves la petite apostrophe au début l'impression se fait apres la visu de l'impression...
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour Phil69970,
Concernant la zone d'impression, elle varie évidemment en fonction de ma liste de courses et je la définis en fonction des besoins (mise en page - zone impression - définir).
Peut-on imaginer cette macro sans la zone d'impression définie dans mon exemple comme B2:D3 dès lors que je l'aurai définie manuellement avant d'activer la macro ?
Pour info, mon nouveau en matière de programmation est plutôt pitoyable...
Je vais faire des essais.
Merci de ton aide,
Pierre
Ça a l'air de marcher. Je vais ajouter des lignes et refaire un test.
Le temps de prendre mon petit déj.
Pierre
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour Constantin, le forum,

Il est aussi simple de placer la date dans une cellule !

A+
Bonjour job75,
J'ai bien sûr pensé à cette solution aussi simple que rationnelle mais dans ma liste de courses qui contient plus souvent 20 ou 30 produits, la place utilisée par la sélection est obérée par la hauteur des lignes 1 et 2. A la limite, il aurait fallu que la ligne 1 contenant la date soit insérée en lieu et place de la ligne 3, mais ce n'est pas possible parce que ça intègre la ligne dans la table et ça met le bazar... Ou alors, il faut que je diminue la hauteur de la ligne 2 pour ne pas perdre trop de place. Why not ?
Merci et bonne journée,
Pierre
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Merci Job75,
Tu as du t'en rendre compte, si ta solution est la plus simple pour un basique comme moi, elle n'est pas très confortable pour avoir un affichage correct.
J'ai fait des essais en modifiant les dimensions de la table "liste courses" et en insérant la ligne de date sous la ligne des items en prenant bien soin de l'exclure de la table.
Ça marche mais l'espace du haut de page ne sert plus à rien. Cela m'oblige à revoir la hauteur des marges.
J'y arrive mais c'est un peu laborieux.
Merci encore et bon week-end (traduire par bonne fin de semaine)
Pierre
 

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 088
Membres
112 656
dernier inscrit
VNVT