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

XL 2019 extraire le mois et l’année de la colonne

Dadi147

XLDnaute Occasionnel
Bonjour. Je veux extraire le mois et l’année de la colonne b en gardant toujours 01 au début de la date inchangée et mettre le résultat dans la colonne A Existe-t-il une formule qui peut le faire ou le code VBA Peut-être mieux de convertir le format en date

 

Pièces jointes

  • DATE.xlsm
    8.4 KB · Affichages: 5
Solution
Re-,
Ainsi :
VB:
Sub Macro1()
Dim Tbl
Dim I As Long
Tbl = Range("A4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For I = LBound(Tbl) To UBound(Tbl)
    Tbl(I, 1) = Application.EoMonth(Tbl(I, 2), -1) + 1
Next I
Range("A4:B" & Cells(Rows.Count, "B").End(xlUp).Row) = Tbl
End Sub
A adapter

JHA

XLDnaute Barbatruc
Bonjour à tous,

Une solution assez simple
VB:
="01/"&TEXTE(B4;"mm/aaaa")
ou
VB:
=("01/"&TEXTE(B4;"mm/aaaa"))*1
pour avoir la date en numérique

Edit: Bonjour @bhbh et et @fanch55
Bien vu le fin de mois

JHA
 

Pièces jointes

  • DATE.xlsm
    9.4 KB · Affichages: 1
Dernière édition:

Dadi147

XLDnaute Occasionnel
Bonjour à tous,

Une solution assez simple
VB:
="01/"&TEXTE(B4;"mm/aaaa")

JHA
Merci après avoir cherché j’ai trouvé ce code faisant le travail mais l’extraction se fait dans la colonne B Je veux que le contraire soit dans la colonne A

VB:
Sub test()
tablo = Range("A4:B" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  tablo(n, 2) = Format(tablo(n, 1), "mm-yyyy")
Next
Range("A4").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End Sub
 

Cousinhub

XLDnaute Barbatruc
Re-,
Ainsi :
VB:
Sub Macro1()
Dim Tbl
Dim I As Long
Tbl = Range("A4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For I = LBound(Tbl) To UBound(Tbl)
    Tbl(I, 1) = Application.EoMonth(Tbl(I, 2), -1) + 1
Next I
Range("A4:B" & Cells(Rows.Count, "B").End(xlUp).Row) = Tbl
End Sub
A adapter
 

Dadi147

XLDnaute Occasionnel
Merci. C’est vraiment ce qu’il faut, merci beaucoup de continuer
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Pourquoi passer par une macro à relancer à chaque fois qu'une date change ?
La formule de @bhbh au Post #5 me semble la plus idéale en tant que formule à mettre en colonne A ?
Calcul automatique ==> pas d'oubli d'extraction manuelle et surtout pas de plantage quand une date n'est pas renseignée ou invalide ...
On peut l'amender en ajoutant le traitement d'erreur:
Code:
=SIERREUR(FIN.MOIS(B4;-1)+1;"")
 

Discussions similaires

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