Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Mois en vba

Tsegp

XLDnaute Nouveau
Bonjour

J'ai un classeur dans lequel je colle en colonne M une liste de date au format jj/mm/aaaa.
Je souhaite a l'aide d'un bouton (et donc d'une macro associé) a écrire en colonne P le mois de cette date en lettre et en colonne O le numéro de la semaine.

Cette liste de date est complète chaque jour donc la macro ne doit pas se limiter à certaine ligne

Une idée ?

Merci d'avance a tous
 

Tsegp

XLDnaute Nouveau
Bonjour @Tsegp

J'ai pas vu ton fichier que tu décris si bien .....

@Phil69970
Bonjour

Alors je n'ai pas joint mon fichier pour des raisons de confidentialité mais voici un fichier exemple dans lequel je reproduis mon classeur.

Actuellement je remplis manuellement la colonne O et P en fonction de la colonne M.

Ce que je souhaite c'est à l'aide d'une macro que cela se remplisse tout seul en fonction de la date indiquée en M.

Je souhaite le faire via une macro et non des formules.

Merci d'avance
 

Pièces jointes

  • test.xlsx
    13.9 KB · Affichages: 2

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir à toutes & à tous
Un petit fichier simple comme celui que je te joins aurait suffit ...
Bon je réponds quand même.
Sauf si tu tiens au VBA, je te propose une solution par formule ou formatage.
A bientôt
 

Pièces jointes

  • Mois en fonction.xlsx
    9.8 KB · Affichages: 0

AtTheOne

XLDnaute Accro
Supporter XLD
Re,
Voici ma proposition:
VB:
Sub Màj()

     Const ColM% = 13, ColO% = 15, ColP% = 16
     Dim Zdate As Range, ZSem As Range, ZMois As Range
     With Feuil1
          Set Zdate = .Range(.Cells(2, ColM), .Cells(.Rows.Count, ColM).End(xlUp))
          Set ZSem = .Cells(2, ColO).Resize(Zdate.Rows.Count)
          Set ZMois = .Cells(2, ColP).Resize(Zdate.Rows.Count)
     End With
   
     Tbdate = Zdate.Value
     TbSem = ZSem.Value
     TbMois = ZSem.Value
   
     For i = 1 To UBound(Tbdate)
          TbSem(i, 1) = WorksheetFunction.IsoWeekNum(Tbdate(i, 1))
          TbMois(i, 1) = Format(Tbdate(i, 1), "mmmm")
     Next
   
     ZSem.Value = TbSem
     ZMois.Value = TbMois
   
End Sub

Voir le fichier joint

Attention le 1er janvier 23 faisait partie de la semaine 52 au sens iso du terme

Edit : la semaine N1 est la 1ère semaine de qui compte au moins 4 jours du mois de janvier
 

Pièces jointes

  • Mois Sem.xlsm
    20.7 KB · Affichages: 1

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir @Phil69970
On se croisse un peu ce soir,
vue l'avertissement de Microsoft :

Je me méfis un peu de cette fonction
Et elle renvoie le N° de semaine à l'américaine et non pas comme nous l'entendons en Europe ( par exemple 1 pour le 1er janvier 2023 alors que sur nos calendriers il fait parti de la semaine 52 de 2022 )

A bientôt
 

Phil69970

XLDnaute Barbatruc
Re

L'aide de Bilou me donne cela


@Phil69970
 

Discussions similaires

Réponses
5
Affichages
198
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…